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+;
const int maxn = ; 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,,sizeof(vis));
while(!q.empty())
{
int v = q.top().se;
q.pop();
if(vis[v])continue;
vis[v] = ;
for(int i=;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]==-)
{
dis[tmp] = min(dis[v] , tmpc);
q.push(make_pair(dis[tmp], tmp));
}
}
}
}
int main(){
int T;
scanf("%d",&T);
for(int t=;t<=T;t++)
{
scanf("%lld%lld", &n,&m); for(int i = ; i <= n; i ++)
mp[i].clear(),dis[i]=-; for(int i=; 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[] = INF;
q.push(make_pair(,));
dij();
printf("Scenario #%d:\n",t);
printf("%lld\n\n",dis[n]);
}
return ;
}
POJ 1797-Heavy Transportation-dijkstra小变形和POJ2253类似的更多相关文章
- POJ.1797 Heavy Transportation (Dijkstra变形)
POJ.1797 Heavy Transportation (Dijkstra变形) 题意分析 给出n个点,m条边的城市网络,其中 x y d 代表由x到y(或由y到x)的公路所能承受的最大重量为d, ...
- POJ 1797 Heavy Transportation (Dijkstra)
题目链接:POJ 1797 Description Background Hugo Heavy is happy. After the breakdown of the Cargolifter pro ...
- POJ 1797 Heavy Transportation 最短路变形(dijkstra算法)
题目:click here 题意: 有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量.分析: 其实这个求最大边可以 ...
- poj 1797 Heavy Transportation(Dijkstar变形)
http://poj.org/problem?id=1797 给定n个点,及m条边的最大负载,求顶点1到顶点n的最大载重量. 用Dijkstra算法解之,只是需要把“最短路”的定义稍微改变一下, A到 ...
- POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径)
POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径) Description Background Hugo ...
- poj 1797 Heavy Transportation(最大生成树)
poj 1797 Heavy Transportation Description Background Hugo Heavy is happy. After the breakdown of the ...
- POJ 1797 Heavy Transportation SPFA变形
原题链接:http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K T ...
- POJ 1797 Heavy Transportation
题目链接:http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K T ...
- POJ 1797 Heavy Transportation (Dijkstra变形)
F - Heavy Transportation Time Limit:3000MS Memory Limit:30000KB 64bit IO Format:%I64d & ...
- POJ 1797 Heavy Transportation(最大生成树/最短路变形)
传送门 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 31882 Accept ...
随机推荐
- MyBatis框架之关联查询
概述:关联查询主要在<resultMap>元素中,用<association>配置一对一.用<collection> 配置一对多 一.一对一查询 1.使 ...
- 章节十五、5-记录日志---Log4j
一.为什么要用Log4j记录日志? 日志记录对于任何应用程序都非常重要. 它可以帮助我们快速调试代码,通过收集代码执行的信息让代码容易维护. 二.Log4j 是什么? Apache为Java提供的日志 ...
- 【Python】Django 的邮件引擎用法详解!!(调用163邮箱为例)
1. send_mall()方法介绍 位置: 在django.core.mail模块提供了send_mail()来发送邮件. 方法参数: send_mail(subject, message, fro ...
- Python - 自学django,上线一套资产管理系统
一.概述 终于把公司的资产管理网站写完,并通过测试,然后上线.期间包括看视频学习.自己写前后端代码,用时两个多月.现将一些体会记录下来,希望能帮到想学django做web开发的人.大牛可以不用看了,小 ...
- QT状态机
首先吐槽下网上各种博主不清不楚的讲解 特别容易让新手迷惑 总体思想是这样的:首先要有一个状态机对象, 顾名思义,这玩意就是用来容纳状态的.然后调用状态机的start()函数它就会更具你的逻辑去执行相关 ...
- asp.net core系列 70 即时通迅-WebSocket+Redis发布订阅
一.概述 在asp.net core 中可以用WebSocket 或asp.net core SignalR来开发即时通迅.在项目中由于开发前后端分离,对于SignalR前端技术人员不想依赖juqer ...
- MQ如何解决消息的顺序性
一.消息的顺序性 1.延迟队列:设置一个全局变量index,根据实际情况一次按照index++的逻辑一次给消息队列设置延迟时间段,可以是0.5s,甚至1s; 弊端:如果A,B,C..消息队列消费时间不 ...
- 19 个 JavaScript 编码小技巧
这篇文章适合任何一位基于JavaScript开发的开发者.我写这篇文章主要涉及JavaScript中一些简写的代码,帮助大家更好理解一些JavaScript的基础.希望这些代码能从不同的角度帮助你更好 ...
- python3学习--文件读写
这一篇我们来看文件读写操作. 打开和创建文件主要是open()函数: f = open('filename','r') # 读模式 f = open('filename','w') # 写模式 f = ...
- Netty学习(五)-DelimiterBasedFrameDecoder
上一节我们说了LineBasedframeDecoder来解决粘包拆包的问题,TCP以流的方式进行数据传输,上层应用协议为了对消息进行区分,一般采用如下4种方式: 消息长度固定,累计读取到消息长度总和 ...