BitComet 旗下网站

转到日志
相关贴吧:
acm of zju

zju2797 最短路径

楼主 发表于:2008-09-03 10:27:26 [回复]

/*106 miles to Chicago         最短路径            邻接表表示
2008-09-03 09:57:35 Accepted 2797 C++ 00:00.11 880K 天将降大任于我
*/
#include<iostream>
using namespace std;
const int N=100;
int s[N+2][N+2];double cost[N+2];bool check[N+2];
int main()
{
   int n,m,x,y,d; int i,j,t,b;double k,Max;
   while(scanf("%d",&n)&&n)
   {  
    scanf("%d",&m);
    memset(check,0,sizeof(check));
    memset(cost,0,sizeof(cost));
    memset(s,0,sizeof(s));
    for(i=0;i<m;i++)
    {
     scanf("%d%d%d",&x,&y,&d);
     s[x][y]=d;s[y][x]=d;
    }
   cost[1]=1.0;Max=0.0;          //cost[]下标从1开始,是因为走得路是从1开始的
   for(i=1;i<=n;i++)
   {
    k=-1.0;
    for(j=1;j<=n;j++)
     if(check[j]==0&&cost[j]>k)   //找出当前未标记过的最大可能性的点
     { k=cost[j];b=j;}
     check[b]=1;                  //标记该点已经走过
     for(t=1;t<=n;t++)
      if(check[t]==0&&(cost[b]*s[b][t]/100.0>cost[t]))   //找出总可能性到下一个最大的结点
        cost[t]=cost[b]*s[b][t]/100.0;   
   }
    printf("%.6lf percent\n",cost[n]*100);
   }
   return 0;
}

心难泰,世风坏,旧时正气今何在?正义寡,人情薄,闻道虽多,茅塞不开。怪!怪!怪! 空等待,几多载,冲出重围人心快!暴雨打,狂风袭,任他折磨,此志难改。耐!耐!耐!

1楼 发表于:2008-09-03 10:45:38 [回复]


 

您现在还没有登录,请在登录后发贴