POJ 1797
来源:互联网 发布:macvim python 配置 编辑:程序博客网 时间:2024/06/03 22:39
题目大意:有t个样例,每个样例要求从1走到n,有m条路,每条路信息包括路的两端点,以及通过这段路的时间。求走到n使得走的各段路的最小值为最大的。
解题思路:dijkstra,修改一下寻找的。dis[i]表示走到i各段路的最小值的最大。初始化为0,先找出距离起点最远的,用最远的进行松弛,松弛操作改变一下就可以了。
ac代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int t, n, m, dis[1005], w[1005][1005], t1, t2, t3, vis[1005], cnt=1; int main(){scanf("%d", &t);while (t--){scanf("%d%d", &n, &m);memset(vis, 0, sizeof(vis));for (int i=1; i<=n; i++){dis[i] = 0;for (int j=1; j<=n; j++)w[i][j] = 0;}for (int i=0; i<m; i++){scanf("%d%d%d", &t1, &t2, &t3);w[t1][t2] = w[t2][t1] = t3;}for (int i=2; i<=n; i++)dis[i] = w[i][1];vis[1] = 1;for (int i=0; i<n; i++){t3 = 0;for (int j=2; j<=n; j++)if (t3 < dis[j] && !vis[j])t3 = dis[j], t1 = j;vis[t1] = 1;for (int j=1; j<=n; j++)if (!vis[j])dis[j] = max(dis[j], min(t3, w[j][t1]));}printf("Scenario #%d:\n", cnt++);printf("%d\n", dis[n]);if (t)printf("\n");}return 0;}
阅读全文
0 0
- poj 1797
- POJ 1797
- POJ 1797
- poj 1797
- poj-1797
- poj 1797
- poj 1797
- POJ 1797
- POJ 1797
- POJ 1797
- poj 1797
- poj 1797
- poj 1797
- POJ 1797
- [poj] 1797
- poj 1797 dij变形
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- LinkedHashMap
- Python学习-----Tinypng图片压缩小程序
- rsync 提取目录结构而不包括目录下的文件
- 用~/.vimrc打造一个完整python环境
- php身份证号码验证
- POJ 1797
- 零成本也能打造多媒体服务器?!分享资源还能这么玩!
- Ext radiogroup控件使用
- 【MongoDB】 MongoDB环境的搭建(Windows)
- 【Java】定时任务Quartz
- 点击密码的显示和隐藏
- 背包九讲学习笔记(2)
- U盘被写保护解决方案
- 欢迎使用CSDN-markdown编辑器