Domino Effect ZOJ 1298 POJ 1135 Dijkstra
2013-03-31 23:04
323 查看
这题WA很久,然后找不出原因,后来看了书上的程序(图论理论算法实现及应用神马的),然后感觉不出来自己哪里错了,后来改了改,把无穷大的定义改小了点,再放到ZOJ上,成功AC了,我都不知道为什么,也许还改了其他地方,我已经糊涂了,然后又把它放POJ 1135上又WA了,我都憔悴了,最后我想起以前刷水题时要把double用%f输出,我试了一下,果然AC了,求解释`````
贴代码:
View Code
贴代码:
View Code
#include <cstdio> #include <cstring> #define MAXN 505 #define INF 1000000 int n; int edge[MAXN][MAXN]; bool s[MAXN]; int time[MAXN]; void Dijkstra() { int i,j; for(i=1; i<=n; i++) time[i] = edge[1][i]; memset(s,false,sizeof(s)); s[1] = true; for(i=1; i<n; i++) { int min = 1000000; int v = 1 ; for(j = 1; j<=n; j++) { if(!s[j] &&time[j] < min) { min = time[j]; v = j; } } s[v] = true;//表明v算过了 for(j=1; j<=n ; j++) { if(!s[j] && edge[v][j] < INF && time[v] + edge[v][j] < time[j])//该点没被算过,v到j有边存在,距离更短 time[j] = time[v] + edge[v][j] ; } } double max1 = -1; int po; time[1] = 0; for(i=1; i<=n; i++) { if(time[i] > max1) { max1 = time[i]; po = i; } } double max2 = -1; int pox,poy; for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { int t; if(edge[i][j] == INF) continue; double temp = (time[i] + time[j] + edge[i][j])/2.0 ; if(temp > max2 ) { max2 = temp; pox = i; poy = j; } } } if(max2 > max1) { printf("The last domino falls after %.1f seconds, between key dominoes %d and %d.\n\n",max2,pox,poy); } else { printf("The last domino falls after %.1f seconds, at key domino %d.\n\n",max1,po); } } int main() { // freopen("in.cpp","r",stdin); int m; int ser = 0; while(~scanf("%d%d",&n,&m)) { if(n==0 && m == 0) break; int i,j; for(i=1; i<=n; i++) for(j=1; j<=n; j++) edge[i][j] = INF; for(i=0; i<m; i++) { int u,v,w; scanf("%d%d%d",&u,&v,&w); edge[u][v] = edge[v][u] = w; } printf("System #%d\n",++ser); Dijkstra(); } return 0; }
相关文章推荐
- TOJ 1883 ZOJ 1298 POJ 1135 Domino Effect / Dijkstra
- poj&nbsp;1135&nbsp;Domino&nbsp;Effect&nbsp;单源最短…
- poj&nbsp;1135&nbsp;Domino&nbsp;Effect(dij)
- G - Domino Effect POJ - 1135
- POJ 1135/ZOJ 1298 Domino Effect (最短路径dijkstra)
- Domino Effect POJ - 1135 题解
- poj1135 - Domino Effect
- POJ 1135 Domino Effect(Dijkstra)
- ZOJ 2750 Idiomatic Phrases Game 最短路(dijkstra)
- POJ 1511 Invitation Cards (ZOJ 2008) 使用优先队列的dijkstra
- zoj 1456 Minimum Transport Cost(Dijkstra + DFS。。。)
- POJ1135 DIJKSTRA+枚举。
- zoj 1891 - 传说中的简答题 - 最短路径 - dijkstra
- POJ 1511 Invitation Cards (ZOJ 2008) 使用优先队列的dijkstra
- ZOJ-2008-一个最短路问题-(dijkstra+heap,spfa)
- CodeForces - 405B(Domino Effect)
- zoj 2504 Help John!(Dijkstra~~)
- zoj 1655 Transport Goods(Dijkstra~~)
- ZOJ Highway Project(dijkstra&heap&邻接表)
- Idiomatic Phrases Game zoj 2750 Dijkstra