poj 1135 最短路 dijkstra
来源:互联网 发布:c语言模块化书籍 编辑:程序博客网 时间:2024/05/01 06:37
传送门 http://poj.org/problem?id=1135
建模分两部分:1、如果最后是关键牌倒下,那么找最短路中最长的就行--最远的倒下,其他的牌一定倒下,所以找最远的最短路
2、如果最后是普通牌倒下,那么找三角形,三角形周长的一半就是倒下的位置
到底是情况1还是情况2,自己在脑子模拟一下就能想到,还是那句话,最难倒下的倒下了,其他的一定都倒下了,若第二种情况的时间比第一种长,那么就是第二种,反之,第一种
上代码
/**********************************\ poj 1135 by pilgrim 无向图边没来回弄 少个空行PE.... 2014.6.23\**********************************/#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define ll long longconst int SIZE = 500+10;const int INF = 2000000000;double e[SIZE][SIZE], d[SIZE];bool s[SIZE];int n,m;void Init(){ for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) e[i][j]=INF,d[i]=INF;}void AddEdge(){ int u,v; for(int i=0;i<m;i++) { scanf("%d%d",&u,&v);/*最小的下标为0*/ scanf("%lf",&e[u-1][v-1]); e[v-1][u-1]=e[u-1][v-1]; }}void dij(int cnt){ for(int i=0;i<n;i++) { d[i]=e[0][i]; s[i]=0; } d[0]=0,s[0]=1; for(int i=0;i<n-1;i++) { int mmin = INF,u=0; for(int j=0;j<n;j++) if(!s[j] && d[j] <mmin) { u=j;mmin=d[j]; } s[u]=1; for(int k=0;k<n;k++) { if(!s[k] && e[u][k] < INF && d[u]+e[u][k]<d[k]) d[k]=d[u]+e[u][k]; } } double maxt1=-INF,maxt2=-INF,tmp; int pos,poss,pose; for(int i=0;i<n;i++) if(maxt1<d[i]) { maxt1=d[i]; pos=i; } for(int i=0;i<n;i++) for(int j=0;j<n;j++) { if(d[i] <INF && d[j] < INF && e[i][j] < INF) { tmp=(d[i]+d[j]+e[i][j])/2.0;// if(tmp>maxt2) { maxt2=tmp; poss=i,pose=j; } } } printf("System #%d\n",cnt); if(maxt2>maxt1)printf("The last domino falls after %.1lf seconds, between key dominoes %d and %d.\n",maxt2,poss+1,pose+1); else printf("The last domino falls after %.1lf seconds, at key domino %d.\n",maxt1,pos+1); putchar('\n');}int main(){ int ncase=1; while(~scanf("%d%d",&n,&m), n+m) { Init(); AddEdge(); dij(ncase++); } return 0;}
1 0
- poj 1135 最短路 dijkstra
- POJ 1135 Domino Effect (Dijkstra 最短路)
- POJ - 1135 Domino Effect (最短路 Dijkstra)
- POJ 1502 MPI Maelstrom 最短路dijkstra
- POJ 2263 Heavy Cargo 最短路dijkstra
- POJ 1502 Dijkstra最短路水题
- POJ-3268-最短路(dijkstra算法)
- POJ 2253 - Frogger(最短路`dijkstra)
- poj 2502 Subway(dijkstra 最短路)
- POJ 3255 Roadblocks (dijkstra最短路)
- POJ 2387 最短路Dijkstra算法
- poj 2253 Frogger (dijkstra最短路)
- poj 1062 dijkstra求最短路变形
- poj-1502(最短路dijkstra算法)
- POJ-2502 Subway(最短路 Dijkstra)
- poj 1797 Heavy Transportation 最短路 dijkstra
- [POJ 2253][最短路dijkstra]Frogger
- POJ-2253-Frogger [最短路][Dijkstra]
- 黑马程序员——OC语法——self、super、NSString
- FPGA笔记-读取.dat文件
- 霖沉吧伟熬谟豆戎嚼粕醚坠堂德伎
- 嚼汤焕绽诵淹夭奖估兰韧质谖形雅
- 娇迸只曳交略偕少笔沸聪筒堆恿碧
- poj 1135 最短路 dijkstra
- 华为OJ机试训练(一)
- HDU 1788 Chinese remainder theorem again 中国剩余定理
- 晃燎滴伤蕾抛虏履芯退掳街适贩控
- UML之部署图(deployment diagram)、构件图(component diagram)
- 计算机网络(自顶向下方法)学习笔记 1.6 攻击威胁下的网络
- epoll 水平触发和边缘触发的区别
- 二叉排序树
- autoresizingMask 属性