Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
麻烦帮个忙,看下程序什么问题,先谢谢啦#include <iostream> #include <iomanip> #include <cstdio> using namespace std; #define min 0 #define start 1 void Dijkstra(int n); double road[101][101]={0}; double dist[101]; bool s[101]; int main() { int n,m; int i; int a,b,p; scanf("%d",&n); while(n) { scanf("%d",&m); for(i=1;i<=n;i++) for(int j=1;j<=n;j++) road[i][j]=min; while(m--) { scanf("%d%d%d",&a,&b,&p); road[a][b]=p/100.000; road[b][a]=p/100.000; } Dijkstra(n); printf("%.6lf percent\n",dist[n]*100); scanf("%d",&n); } return 0; }//main void Dijkstra(int n) { int i,j; for(i=1;i<=n;i++) { dist[i]=road[start][i]; s[i]=false; } dist[start]=0; s[start]=true; for(i=1;i<n;i++) { double tmp=min; int u=start; for(j=1;j<=n;j++) if( (!s[j]) && (dist[j]>tmp) ) {u=j;tmp=dist[j];} s[u]=true; for(j=1;j<=n;j++) if( (!s[j]) && (road[u][j]>min) ) { double newdist=dist[u]*road[u][j]; if(newdist>dist[j]) dist[j]=newdist; } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator