POJ 2387

来源:互联网 发布:swift 自定义元素数组 编辑:程序博客网 时间:2024/05/20 20:19

求最短路,套模板即可~

#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define inf 0x7ffffffint w[1005][1005],v[1005],d[1005];int t,n;int dijkstra(int s){  int p,minn;  memset(v,0,sizeof(v));  for(int i=1;i<=n;i++)  d[i]=inf;  d[s]=0;  for(int i=1;i<=n;i++)  {     minn=inf;     for(int j=1;j<=n;j++) if(!v[j]&&d[j]<minn) {   p=j;   minn=d[j]; } v[p]=1; for(int j=1;j<=n;j++) { //cout<<p<<endl; if(!v[j]) d[j]=min(d[j],d[p]+w[p][j]); }   }  return d[n];}int main(){  while(scanf("%d%d",&t,&n)!=EOF)  {   for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)   w[i][j]=inf;   while(t--)   {     int x,y,z;     scanf("%d%d%d",&x,&y,&z);     w[x][y]=min(w[x][y],z); //考虑重边的情况     w[y][x]=w[x][y];   }   int ans=dijkstra(1);   printf("%d\n",ans);  }  return 0;}

0 0
原创粉丝点击