poj 1797 Heavy Transportation(通路中的最大承载量)
来源:互联网 发布:苹果电脑双系统卸载mac 编辑:程序博客网 时间:2024/05/21 11:34
题意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量。
思路:求通路中路径的最大值。dijkstra的变型,用d[]数组记录路径中的最大承载量。
#include <iostream>#include <stdio.h>using namespace std;#define MAXV 1010#define min(a,b) (a<b?a:b)int map[MAXV][MAXV],n,m;int dijkstra(){ int vis[MAXV],d[MAXV],i,j,v; for(i=1; i<=n; i++) { vis[i]=0; d[i]=map[1][i];//这个时候d不代表从1到n的最短路径,而是最大承载量 } for(i=1; i<=n; i++) { int f=-1; for(j=1; j<=n; j++) if(!vis[j] && d[j]>f) { f=d[j]; v=j; } vis[v]=1; for(j=1; j<=n; j++) if(!vis[j] && d[j]<min(d[v],map[v][j])) //d[j]代表已经搜索到的结果,min(d[v],map[v][j])为当前通路的最大承载量,与已有的d[i]比较取大的 { d[j]=min(d[v],map[v][j]); } } return d[n];}int main(){ int t,i,j,sum,a,b,c; scanf("%d",&sum); for(t=1; t<=sum; t++) { scanf("%d%d",&n,&m); for(i=0; i<=n; i++) for(j=0; j<=n; j++) map[i][j]=0; for(i=1; i<=m; i++) { scanf("%d%d%d",&a,&b,&c); map[a][b]=map[b][a]=c; } printf("Scenario #%d:\n",t); printf("%d\n\n",dijkstra()); } return 0;}
0 0
- poj 1797 Heavy Transportation(通路中的最大承载量)
- poj 1797 Heavy transportation最大生成树
- POJ 1797 Heavy Transportation(最大生成树)
- 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
- _free_base 崩溃
- jquery ajax
- camp day2
- Android Notification.setLatestEventInfo弃用和Notification.Builder用法
- leetcode303-Range Sum Query - Immutable
- poj 1797 Heavy Transportation(通路中的最大承载量)
- zookeeper配置开机启动失效分析
- VB把excel数据导入ACCESS
- 渣渣的大数相比 - 我果然机智
- 读《大话设计模式》——适配器模式
- POJ 1942(组合数学)
- AccessibilityService之微信抢红包辅助功能实现
- 深度学习个人总结之四----自编码算法(AutoEncoder)
- Android 中activity中传递数据的方式