poj1797 最短路
虽然不是求最短路,但是仍然是最短路题目,题意是要求1到N点的一条路径,由于每一段路都是双向的并且有承受能力,求一条路最小承受能力最大,其实就是之前POJ2253的翻版,一个求最大值最小,一个求最小值最大,于是只要修改最短路的更新条件就可以直接跑模板了
dij:
#include<stdio.h>
#include<string.h>
#include<vector>
#include<algorithm>
#include<queue>
#define min(a,b) a<b?a:b
const int INF=0x3f3f3f3f;
using namespace std;
typedef pair<int,int> pii; struct cmp{
bool operator()(pii a,pii b){
return a.first<b.first;
}
}; int g[][],n,m,dist[]; void dij(int s,int p){
int i;
memset(dist,-,sizeof(dist));
dist[s]=INF;
priority_queue<pii,vector<pii>,cmp>q;
q.push(make_pair(dist[s],s));
while(!q.empty()){
pii u=q.top();
q.pop();
if(u.first<dist[u.second])continue;
for(i=;i<=n;i++){
if(~g[u.second][i]){
int j=min(u.first,g[u.second][i]);
if(dist[i]==-||dist[i]<j){
dist[i]=j;
q.push(make_pair(dist[i],i));
}
}
}
}
printf("%d\n\n",dist[p]);
} int main(){
int t;
while(scanf("%d",&t)!=EOF){
for(int q=;q<=t;q++){
int i;
memset(g,-,sizeof(g));
scanf("%d%d",&n,&m);
for(i=;i<=m;i++){
int x,y,v;
scanf("%d%d%d",&x,&y,&v);
if(g[x][y]<v){
g[x][y]=g[y][x]=v;
}
}
printf("Scenario #%d:\n",q);
dij(,n);
}
}
return ;
}
dij
spfa:
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
const int MAXM=;
const int INF=0x3f3f3f3f; int g[MAXM+][MAXM+],dist[MAXM+],n,m;
bool vis[MAXM+]; void spfa(int s,int p){
int i;
memset(dist,-,sizeof(dist));
dist[s]=INF;
memset(vis,,sizeof(vis));
queue<int>q;
q.push(s);
vis[s]=;
while(!q.empty()){
int u=q.front();
q.pop();
vis[u]=;
for(i=;i<=n;i++){
int t=dist[u]<g[u][i]?dist[u]:g[u][i];
if(i!=u&&g[u][i]!=-&&dist[i]<t){
dist[i]=t;
if(!vis[i]){
q.push(i);
vis[i]=;
}
}
}
}
printf("%d\n\n",dist[p]);
} int main(){
int t;
while(scanf("%d",&t)!=EOF){
for(int q=;q<=t;q++){
int i;
scanf("%d%d",&n,&m);
memset(g,-,sizeof(g));
for(i=;i<=m;i++){
int a,b,v;
scanf("%d%d%d",&a,&b,&v);
if(g[a][b]<v){
g[a][b]=g[b][a]=v;
}
}
printf("Scenario #%d:\n",q);
spfa(,n);
}
}
return ;
}
spfa
poj1797 最短路的更多相关文章
- POJ-1797(最短路变形-dijkstra)
Heavy Transportation POJ-1797 这题是最短路题型的变形,该题不是求起点到终点的最短路,而是求路径中的最小边的最大值. 这题的求解思路是:将原来dijkstra中的松弛方程改 ...
- POJ--1797 Heavy Transportation (最短路)
题目电波: POJ--1797 Heavy Transportation n点m条边, 求1到n最短边最大的路径的最短边长度 改进dijikstra,dist[i]数组保存源点到i点的最短边最大的路径 ...
- [POJ1797] Heavy Transportation(最大生成树 || 最短路变形)
传送门 1.最大生成树 可以求出最大生成树,其中权值最小的边即为答案. 2.最短路 只需改变spfa里面的松弛操作就可以求出答案. ——代码 #include <queue> #inclu ...
- poj1797 - Heavy Transportation(最大边,最短路变形spfa)
题目大意: 给你以T, 代表T组测试数据,一个n代表有n个点, 一个m代表有m条边, 每条边有三个参数,a,b,c表示从a到b的这条路上最大的承受重量是c, 让你找出一条线路,要求出在这条线路上的最小 ...
- poj1797(最短路小变形)
题目连接:http://poj.org/problem?id=1797 题意: 分析:dp[i]表示到达i点的过程中的最大承受重量,更新到i点时可能有多条路径,由优先队列堆出最大的那条即可. #inc ...
- (最短路) Heavy Transportation --POJ--1797
链接: http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K To ...
- POJ1797 Heavy Transportation —— 最短路变形
题目链接:http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K T ...
- 逆着得最长路POJ1797
POJ1797点击打开链接 这个题很是不错我感觉 很容易把这个题和上一个青蛙跳的题联系起来做,我也确实联系起来了,可还是没能完整得Ac,是因为我的算法思路还是最短路,这里错了 这个题目得要求是,从1到 ...
- bzoj1001--最大流转最短路
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 思路:这应该算是经典的最大流求最小割吧.不过题目中n,m<=1000,用最大流会TLE, ...
随机推荐
- Mac安装软件时 提示已损坏的解决方法
进入终端: sudo spctl --master-disable
- android--------阿里 AndFix 热修复
AndFix,全称是Android hot-fix.是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug. 支持Android 2.3 到 6.0,并且支持arm 与 X86 ...
- Objections vs. excuses
Objections are healthy. When someone is being offered a new opportunity or product, it's not unusual ...
- ubuntu谷歌浏览器安装
sudo apt-get install chromium-browser-dbg 然后按照规定就好了.
- UVA-10539 Almost Prime Numbers
题目大意:这道题中给了一种数的定义,让求在某个区间内的这种数的个数.这种数的定义是:有且只有一个素因子的合数. 题目分析:这种数的实质是素数的至少两次幂.由此打表——打出最大区间里的所有这种数构成的表 ...
- Android studio Suggestion: use tools:overrideLibrary=”jp.wasabeef.blurry” to force usage
异常提示: 应用在Android Studio Build的时候,抛出了如下异常: Error:Execution failed for task ‘:app:processDebugManifest ...
- Leetcode 78
//和77类似的问题,可以放在一起记忆class Solution { public: vector<vector<int>> subsets(vector<int> ...
- dp练习(1)——马走日字
3328: 马走日字 时间限制: 1 Sec 内存限制: 128 MB提交: 35 解决: 5[提交][状态][讨论版] 题目描述 一次外出旅游,你路上遇到了一个骑着马的强盗,你很害怕,你需要找一 ...
- 两个listbox 复制
foreach (object obj in lbxInsure .Items) { billInfo.lbxAppCus .Items.Add ...
- html5- 摘自网友dudu
HTML5中新增了<canvas>画布标签,通过它,可以使用JavaScript在网页中绘制图像.<canvas>标签在网页中得到的是一个矩形空白区域,可以通过width和he ...