ZOJ 1298 Domino Effect
来源:互联网 发布:linux下ftp服务器搭建 编辑:程序博客网 时间:2024/05/18 11:17
首先dijkstra求出最短路,求的时候顺便求出1能到的最长路记为ans * 2.
枚举每条边,满足dis[i] + dis[j] + g[i][j] > ans 更新ans.
最后输出答案ans / 2;
/* * ZOJ 1298.cpp * * Created on: May 27, 2013 * Author: root */#include <iostream>#include <cstdio>#include <queue>#include <memory.h>#include <limits.h>using namespace std;const int maxn = 505;struct edge{int v, next;double w;}es[maxn * 5];struct node{int i;double v;node(int ii = 0, double vv = 0):i(ii), v(vv){}bool operator<(const node & rhs)const{return v > rhs.v;}};int head[maxn], n, m, fro, tar, type;double ans;double dis[maxn];bool vis[maxn];void addEdge(int u, int v, double w, int eidx){es[eidx].v = v;es[eidx].w = w;es[eidx].next = head[u];head[u] = eidx;}void dijkstra(){type = 0;for(int i = 1; i <= n; ++i){dis[i] = INT_MAX;}memset(vis, 0, sizeof(vis));dis[1] = 0;priority_queue<node> q;q.push(node(1, 0));while(q.size()){node t = q.top();q.pop();int u = t.i;if(vis[u])continue;vis[u] = 1;if(t.v >= ans){fro = u;ans = t.v;}for(int ne = head[u]; ne != -1; ne = es[ne].next){int v = es[ne].v;double w = es[ne].w;if(dis[v] > dis[u] + w && !vis[v]){dis[v] = dis[u] + w;q.push(node(v, dis[v]));}}}}int main(){int cas = 1;while(scanf("%d %d", &n, &m)){if(!n && !m)break;memset(head, -1, sizeof(head));int eidx = 0;for(int i = 0; i < m; ++i){int u, v;double w;scanf("%d %d %lf", &u, &v, &w);addEdge(u, v, w, eidx++);addEdge(v, u, w, eidx++);}ans = 0;fro = 1;dijkstra();ans *= 2;for(int i = 1; i <= n; ++i){for(int ne = head[i]; ne != -1; ne = es[ne].next){int u = i, v = es[ne].v;double w = es[ne].w;if(dis[u] + dis[v] + w > ans){fro = u, tar = v;type = 1;ans = dis[u] + dis[v] + w;}}}printf("System #%d\n", cas++);if(type == 0){if(m == 0) fro = 1;printf("The last domino falls after %.1lf seconds, at key domino %d.\n", ans / 2, fro);}else{printf("The last domino falls after %.1lf seconds, between key dominoes %d and %d.\n", ans / 2, fro, tar);}printf("\n");}return 0;}
- ZOJ 1298 Domino Effect
- ZOJ 1298 Domino Effect【dijkstra】
- [ZOJ 1298][POJ 1135] Domino Effect
- zoj 1298 Domino Effect(最短路)
- POJ 1135/ZOJ 1298 Domino Effect
- zoj 1298 Domino Effect (Dijkstra)
- zoj 1298 && poj 1135 Domino Effect
- POJ 1135/ZOJ 1298 Domino Effect (最短路径dijkstra)
- ZOJ 1298 Domino Effect(POJ1135)(最短路)
- ZOJ 1298 poj 1135 Domino Effect(最短路,dij)
- ZOJ 1298 Domino Effect 遗憾之Segmentation Fault
- TOJ 1883 ZOJ 1298 POJ 1135 Domino Effect / Dijkstra
- zoj 1298 Domino Effect(最短路径)
- zju 1298 Domino Effect
- zoj 1298 Domino Effect || poj 1135(zoj排名第二!!泪奔!!)
- ZOJ 1298_Domino Effect
- JOJ 1133 Domino Effect
- poj 1135 Domino Effect
- OleInitialize、CoInitialize、CoInitializeEx和AfxOleInit()区别
- Reader Writer BufferReader BufferWriter 装饰模式
- 如何使用SAE的Storage
- 概率随机问题
- iOS图片拉伸技巧
- ZOJ 1298 Domino Effect
- 各种排序算法及其Java程序实现
- oracle spatial下对wkt字符串操作遇到srid的解决方案
- 硬盘分区出现问题
- android listview item 定义不同样式的布局
- 提纲啊
- ZOJ-1655-Transport Goods
- DBMS_SPACE包中常用的过程
- 室内定位技术