POJ 1797-Heavy Transportation-dijkstra小变形和POJ2253类似
传送门:http://poj.org/problem?id=1797
题意:
在起点和终点间找到一条路,使得经过的边的最小值是最大的;
和POJ2253类似,传送门:http://www.cnblogs.com/ckxkexing/p/8747108.html
思路:
跑一边dijkstra,每次松弛的条件改为:if( dis[tmp] < min(dis[v],tmpc) )dis[tmp] = min( dis[v] , tmpc);
注意这道题和POJ2253的区别在于每次选取的节点要最小,即向优先队列中push入正的dis就OK;
2>这道题还可以用最小生成树来做;
#include <iostream> #include <queue> #include <cstdio> #include <vector> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define pb push_back #define fi first #define se second typedef long long ll;const ll INF = 1e12+9; const int maxn = 100007;ll n, m, k, s; ll dis[maxn]; bool vis[maxn]; vector < pair<ll, ll > > mp[maxn]; priority_queue< pair<ll ,ll > > q;void dij(){memset(vis,0,sizeof(vis));while(!q.empty()){int v = q.top().se;q.pop();if(vis[v])continue;vis[v] = 1;for(int i=0;i<mp[v].size();i++){int tmp = mp[v][i].fi;ll tmpc = mp[v][i].se;if(dis[tmp] < min(dis[v] , tmpc)||dis[tmp]==-1){dis[tmp] = min(dis[v] , tmpc);q.push(make_pair(dis[tmp], tmp));}}} } int main(){int T;scanf("%d",&T);for(int t=1;t<=T;t++){scanf("%lld%lld", &n,&m);for(int i = 1; i <= n; i ++)mp[i].clear(),dis[i]=-1;for(int i=1; i<=m; i++){int x,y,c;scanf("%d%d%d",&x,&y,&c);mp[x].pb(make_pair(y,c));mp[y].pb(make_pair(x,c));}dis[1] = INF;q.push(make_pair(0,1));dij();printf("Scenario #%d:\n",t);printf("%lld\n\n",dis[n]);}return 0; }
转载于:https://www.cnblogs.com/ckxkexing/p/8763474.html
POJ 1797-Heavy Transportation-dijkstra小变形和POJ2253类似相关推荐
- POJ 1797 Heavy Transportation 最短路变形(dijkstra算法)
题目:click here 题意: 有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量. 分析: 其实这个求最大边可 ...
- POJ 1797 Heavy Transportation 解题报告
分类:图论,生成树,最短路,并查集 作者:ACShiryu 时间:2011-7-28 地址:ACShiryu's Blog Heavy Transportation Time Limit: 3000M ...
- (Realx dijkstra1.1)POJ 1797 Heavy Transportation(使用dijkstra来解决最大生成树问题)
题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量 解题思路:其实这个求最大边可以近似于求最短路,只要修改 ...
- POJ 1797 Heavy Transportation
传送门:http://poj.org/problem?id=1797 不想吐槽了,弄了好久才AC 实现代码: #include <cstdio> #include <cstring& ...
- POJ 1797 Heavy Transportation
题意: 给出一个有N个节点的无向图和 M 条边,每条边都有一个重力承受度,要从中找出一条从 1 节点到 n节点的路径,使得可以经过的车辆载重最大. 分析: 类似于最大流中找增广路,在求最短路的松弛操作 ...
- Heavy Transportation(Dijkstra算法)
题目: Hugo Heavy很高兴.在Cargolifter项目破裂后,他现在可以扩展业务.但他需要一个聪明的人告诉他,他的客户是否真的有办法将他的巨型钢制起重机建造到需要所有街道都能承受重量的地方. ...
- Heavy Transportation - dijkstra
思路比较简单,每次选取最大的边,然后取路径上边的最小值,具体过程看代码注释. AC code: #include<iostream> #include<cstdio> #inc ...
- 【POJ No. 1797】重型运输 Heavy Transportation
[POJ No. 1797]重型运输 Heavy Transportation POJ题目地址 [题意] Hugo需要将巨型起重机从工厂运输到他的客户所在的地方,经过的所有街道都必须能承受起重机的重量 ...
- C - Heavy Transportation POJ - 1797
C - Heavy Transportation POJ - 1797 求从1~n的最大载货量 #include<iostream> #include<cstring> #in ...
最新文章
- 简单工厂模式(StaticFactoryMethod)
- 月薪没到30K的程序员必须要背的面试八股文,我先啃为敬。。。
- Mysql 参数最佳实践_MySQL参数调优最佳实践
- C++ Primer 5th笔记(chap 13 拷贝控制) 实例2内存管理
- Android中关于cpu/cpuset/schedtune的应用
- Struts2_2_解决配置文件冗余_动作类对象数据封装_数据类型转换_表单数据信息提示
- python 调用外部程序 终端异常_python调用外部命令
- 【分享】老鸟程序员才知道的技巧
- Java集合框架:ArrayList扩容机制解释
- 计算机无法创建新文件夹,无法创建文件,小编教你无法新建文件夹怎么办
- STM32个人笔记-电源管理
- 163VIP邮箱注册,163邮箱使用评价
- ARM GIC(六) GIC V3 电源/功耗管理 分析笔记。
- JOI2014Final 飞天鼠
- 三分钟带你了解,什么是地理信息系统(GIS)
- upupoo视频使用Java代码下载
- 炒币机器人:币圈炒币是怎么亏钱的
- 三星80亿美元收购Harmon真正意图是它?
- 30天自制操作系统 导读
- AutoCAD 2021 for Mac(cad2021)中文版