题意
:日了狗的,日文???
给那条路,求所有顶点中,到其它所有顶点之和的最小值;顶点数据只有10,直接Floyd水过....
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<stdio.h>
#include<queue>
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;
#define N 15
int n;
int dis[N],maps[N][N];
int main()
{
int i,a,b,c,j,k;
while(scanf("%d",&n),n)
{
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
maps[i][j]=(i==j)?0:INF;
}
}
int m=-1;
for( i=0; i<n; i++)
{
scanf("%d%d%d",&a,&b,&c);
m=max(a,m);
m=max(b,m);
maps[a][b]=maps[b][a]=c;
}
for(k=0;k<=m;k++)
{
for(i=0;i<=m;i++)
{
for(j=0;j<=m;j++)
{
if(maps[i][j]>maps[i][k]+maps[k][j])
maps[i][j]=maps[i][k]+maps[k][j];
}
}
}
int Min=INF;
int index=-1;
memset(dis,0,sizeof(dis));
for(i=0;i<=m;i++)
{
for(j=0;j<=m;j++)
{
dis[i]=dis[i]+maps[i][j];
}
if(Min>dis[i])
{
index=i;
Min=dis[i];
}
}
printf("%d %d\n",index,Min);
}
return 0;
}