hdu 2544
#include <iostream> #include <cstdio> using namespace std; const int INF=0x3f3f3f3f; int dis[110][110]; int main() { int i,j,k,n,m,p,q,s; while(scanf("%d%d",&n,&m)!=EOF,n+m) { for (i=1;i<=n;i++) { for(j=1;j<=n;j++) { dis[i][j]=INF; } } for (i=0;i<m;i++) { scanf("%d%d%d",&p,&q,&s); dis[p][q]=dis[q][p]=s; } for (k=1;k<=n;k++) { for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { if (dis[i][j]>dis[i][k]+dis[k][j]) { dis[i][j]=dis[i][k]+dis[k][j]; } } } } printf("%d\n",dis[1][n]); } return 0; }
//hdu 2544
求最短路的问题,题目大意是先给出两个数m,n,m代表有m个点,n代表后面n行测试数据,然后每行输入a,b,c三个数,a,b表示点的下标,c是a点到b的长度,下标为1代表起点,下标为m代表终点,然后求出起点到终点的最短路。。。。题型都很类似。。。。不多说了