A - Til the Cows Come Home 图论

#include"stdio.h"
int a[1005][1005];
bool  used[1005];
int dis[1005];
int main()
{
   int  t,n,i,j,k,x,y,s,tmin;
   for(i=0;i<1005;i++)
    for(j=0;j<1005;j++)
     a[i][j]=99999999;
    for(i=0;i<1005;i++) 
    {
       used[i]=0;
       a[i][i]=0;
       dis[i]=99999999;                    
    }
    scanf("%d %d",&t,&n);
    for(i=0;i<t;i++)
    {
       scanf("%d %d %d",&x,&y,&s);
       if(a[x][y]>s)
       {
         a[x][y]=s;
         a[y][x]=s;            
       }               
    }
     for(i=1;i<=n;i++)
      dis[i]=a[1][i];
      for(i=1;i<=n;i++)
      {
        tmin=99999999;
        for(j=1;j<=n;j++)
        {
          if(!used[j]&&dis[j]<tmin)
          {
             tmin=dis[j];
             k=j;                        
          }                
        }                
        used[k]=1;
        for(j=1;j<=n;j++)
        {
           if(dis[j]>dis[k]+a[k][j])
           dis[j]=dis[k]+a[k][j];                
        }
       }
      printf("%d\n",dis[n]);
      return 0; 
}

posted @ 2011-08-01 15:53  bcy  阅读(143)  评论(0编辑  收藏  举报