记录编号 67882 评测结果 AAAAAAAA
题目名称 服务点设置 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.011 s
提交时间 2013-08-15 10:42:17 内存使用 0.35 MiB
显示代码纯文本
#include<fstream>
#include<queue>
using namespace std;
ifstream fin("djsa.in");
ofstream fout("djsa.out");
class woca
{
public:
	int b;
	int c;
};//b表示该节点,c表示权值
int d[200];
priority_queue<woca>q;
bool operator<(woca n,woca m)
{
	if(n.c<m.c)
		return 0;
	else
		return 1;
}
int a[101][101];
int n,m;
int dist[200];
void dijkstra(woca T)
{
	woca A;
	q.push(T);
	int x,y,i;
	int maxn=0;
	int K;
	x=T.b;
	y=T.c;
	dist[x]=0;
	while(!q.empty())
	{
		woca flag;
		flag=q.top();
		q.pop();
		for(i=0;i<=n-1;i++)
		{
			if(a[flag.b][i]!=0)
			{
				if(dist[i]>dist[flag.b]+a[flag.b][i])
				{
					dist[i]=dist[flag.b]+a[flag.b][i];
					A.b=i;
					A.c=dist[i];
					q.push(A);
				}
			}
		}
	}
	for(i=n-1;i>=0;i--)
		if(dist[i]>maxn)
		{
			maxn=dist[i];
		}
	K=x;
	d[K]=maxn;
}
int main()
{
	fin>>n>>m;
	int i,x,y,z,j;
	int k,max1=99999999;
	woca X;
	for(i=0;i<=n-1;i++)
		for(j=0;j<=n;j++)
			a[i][j]=0;
	for(i=1;i<=m;i++)
	{
		fin>>x>>y>>z;
		a[x][y]=z;
		a[y][x]=z;
	}
	for(i=0;i<=n-1;i++)
	{
		for(j=0;j<=n-1;j++)
		{dist[j]=999999999;}
		X.b=i;
		X.c=0;
		dijkstra(X);
	}
	for(i=n-1;i>=0;i--)
	{
		if(d[i]<=max1)
		{
			max1=d[i];
			k=i;
		}
	}
	fout<<k<<endl;
	return 0;
}