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, ...
随机推荐
- Java 的对象和类
Java 是一种面向对象的语言.作为一个面向的语言,Java 具有面向对象的特性,Java 能够支持下面的一些基本概念 − 多态(Polymorphism) 继承(Inheritance) 封装(En ...
- hdu 2018多校8
A.Character Encoding 简单计数 m个非负数和等于k的方案数为$\binom{m+k-1}{k}$, 但题目还要求每个数小于n, 容斥一下即可 即$ans = \sum\limits ...
- CF-500div2-A/B/C
A. Piles With Stones time limit per test 1 second memory limit per test 256 megabytes input standard ...
- length,lengthb,substr,substrb,instr小用
--字符串的字符长度 select length('wm.dfw.士农工商.sda.人马ss.dfw.4.sdf.332.sf.qq.sd') from dual; --字符串的字节长度 select ...
- 4. Median of Two Sorted Arrays *HARD* -- 查找两个排序数组的中位数(寻找两个排序数组中第k大的数)
There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two ...
- AIX5L内存监控和调整
1.ps ps gv | head -n 1; ps gv | egrep -v "RSS" | sort +6b -7 -n -r PID TTY STAT ...
- html form表单提交后处理返回数据
上传如果通过form提交并且需要处理返回值.(其实用ajax上传方式刚好,看需要) 可以这么做: <form id="importBookForm" action=" ...
- java并发编程:线程安全管理类--原子操作类--AtomicMarkableReference<V>
1.类 AtomicMarkableReference<V> public class AtomicMarkableReference<V>extends Object Ato ...
- app.jsNodejs启动测试服务
'use strict'; var express = require('express');var app = express('');var fs = require('fs'); app.get ...
- Quartz定时任务和IIS程序池闲置超时时间冲突解决方案
一.问题描述 Bs项目中用Quartz功能执行一个定时任务(每隔5分钟执行一个Job),正常情况,Quartz定时任务会5分钟执行一次,但IIS程序池闲置 超时默认为20分钟,造成的结果是:定时任务只 ...