转自http://blog.csdn.net/huangkuizuiniu/article/details/50614806
#include<iostream>
#include<cstdio>
using namespace std;
int d[10001][10001];
int main(){
int i,j,k,n,m;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
d[i][j]=10000000;
for(i=1;i<=n;i++)d[i][i]=0;
for(i=1;i<=m;i++){
int x,y,w;
cin>>x>>y>>w;
d[x][y]=w;
d[y][x]=w;
}
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(d[i][j]>d[i][k]+d[k][j])
d[i][j]=d[i][k]+d[k][j];
cout<<d[1][2];
return 0;
}