POJ 1797 Heavy Transportation
来源:互联网 发布:笑气在淘宝怎么搜 编辑:程序博客网 时间:2024/04/28 05:42
题目链接:kuangbin带你飞 专题四 最短路练习 C - Heavy Transportation
题意
有n个城市,n个城市之间有m条公路或桥梁,每个公路或桥都有一个最大载重量,问从城市1到城市n所能运送到货物到最大重量是多少
思路
显然1到n的最大承重量为所有公路的承重量的最小值
那么本题就是要求1到n的所有可能路径中最大承重量最大的一条路,即所经过所有公路的载重量最小值 最大的一条路。
对dijkstra进行修改,令d[i]表示1到i的所有可能路径中载重量最小值最大的一条路的最小值,最终的解就是d[n];
代码
#include<iostream>#include<cstring>#include<cmath>#include<cstdio>#include<algorithm>using namespace std;const int N = 1009;const int MAX = 0x3f3f3f3f;int v[N][N];bool vis[N];int d[N];int dijkstra(int n){ memset(vis, 0, sizeof(vis)); for(int i=1; i<=n; i++) d[i] = v[1][i]; vis[1] = 1; for(int i=1; i<n; i++) { int x = -1, max = 0; for(int j=1; j<=n; j++) { if(!vis[j] && d[j] > max) max = d[x = j]; } if(x == -1) break; vis[x] = 1; for(int j=1; j<=n; j++) { if(!vis[j]) { int mmin = min(max, v[j][x]); if(mmin > d[j]) { d[j] = mmin; } } } } return d[n];}int main(){ int T; cin>>T; for(int C=1; C<=T; C++) { int n, m; cin>>n>>m; memset(v, 0, sizeof(v)); for(int i=0; i<m; i++) { int a, b, c; scanf("%d%d%d",&a,&b,&c); v[a][b] = v[b][a] = c; } cout<<"Scenario #"<<C; cout<<":"<<endl; cout<<dijkstra(n)<<endl<<endl; } return 0;}
0 0
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- Poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ-1797-Heavy Transportation
- POJ 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- poj 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- POJ 1797 Heavy Transportation
- P15 (**) Replicate the elements of a list a given number of times.
- linux查看各种硬件信息的方法
- iOS多线程之GCD学习
- JAVA——常见IO流的使用
- 45度斜角地图菱形坐标转换
- POJ 1797 Heavy Transportation
- linux下手动build spark1.6.0
- 匿名内部类那点事
- 哈夫曼树结构体数组生成方法
- 游戏地图中两点坐标相对的方向(角度)判断
- 斜45度地图简介、坐标系转换以及数据碰撞
- JavaScript中数组类型的常用操作方法以及属性
- Masonry自动计算cell行高:HYBMasonryAutoCellHeight
- Android Studio——通过java.net.URLConnection发送HTTP请求的方法