POJ-1797(最短路变形-dijkstra)
Heavy Transportation
POJ-1797
- 这题是最短路题型的变形,该题不是求起点到终点的最短路,而是求路径中的最小边的最大值。
- 这题的求解思路是:将原来dijkstra中的松弛方程改一下,改成求最小边的最大值的松弛方程:d[j]=max(d[j],min(d[i],w[i][j]))。
#include <algorithm>
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstring>
#define INF 0x3f3f3f3f
#define MOD 1e9+7
using namespace std;
int e[1005][1005];
int dis[1005];
bool vis[1005];
int main()
{
int T,n,m,ca=0;
cin>>T;
while(T--)
{
scanf("%d%d",&n,&m);
memset(e,0,sizeof(e));
int a,b,w;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&w);
e[a][b]=e[b][a]=w;
}
dis[1]=INF;
for(int i=2;i<=n;i++)
dis[i]=e[1][i];
memset(vis,false,sizeof(vis));
for(int k=0;k<n;k++)
{
int mi,mm=-INF;
for(int i=1;i<=n;i++)
{
if(!vis[i]&&dis[i]>mm)
{
mm=dis[i];
mi=i;
}
}
vis[mi]=true;
for(int i=1;i<=n;i++)
{
if(!vis[i])
dis[i]=max(dis[i],min(dis[mi],e[mi][i]));
}
}
printf("Scenario #%d:\n%d\n\n",++ca,dis[n]);
}
return 0;
}
java:
package POJ;
import java.util.*;
public class POJ_1797 {
private static int n,m;//n:1-1000
static int t;//case
static int [][]w;
static int []dis;
static boolean []flag;
static final int INF=0X3F3F3F3F;
static int s,e;
static int dijkstra() {
for(int i=0;i<n;i++) {
int index=-1,mins=INF;
for(int j=0;j<n;j++) {
if(!flag[j]&&dis[j]>mins) {
mins=dis[index=j];
}
}
if(index==-1)
break;
flag[index]=true;
for(int j=0;j<n;j++) {
if(!flag[j])
dis[j]=Math.max(dis[j],Math.min(dis[index],w[index][j]));
}
}
return dis[e];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in);
t=cin.nextInt();
int cnt=1;
while(t>0) {
n=cin.nextInt();
m=cin.nextInt();
w=new int[n][n];
dis=new int[n];
for(int i=0;i<m;i++) {
int from,to;
from=cin.nextInt();
to=cin.nextInt();
w[from-1][to-1]=w[to-1][from-1]=cin.nextInt();
}
s=0;e=n-1;
dis[s]=INF;
flag=new boolean[n];
for(int i=1;i<n;i++) {
dis[i]=w[0][i];
}
flag[s]=true;
System.out.println("Scenario #"+cnt+":");
System.out.println(dijkstra());
t--;
cnt++;
}
}
}
POJ-1797(最短路变形-dijkstra)的更多相关文章
- poj 1797 最短路变形dijkstra
题意:题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量 链接:点我 解题思路:其实这个求最大边可以近似于 ...
- Heavy Transportation POJ 1797 最短路变形
Heavy Transportation POJ 1797 最短路变形 题意 原题链接 题意大体就是说在一个地图上,有n个城市,编号从1 2 3 ... n,m条路,每条路都有相应的承重能力,然后让你 ...
- poj 1797(最短路变形)
题目链接:http://poj.org/problem?id=1797 思路:题目意思很简单,n个顶点,m条路,每条路上都有最大载重限制,问1->n最大载重量.其实就是一最短路的变形,定义wei ...
- POJ 1797 最短路变形所有路径最小边的最大值
题意:卡车从路上经过,给出顶点 n , 边数 m,然后是a点到b点的权值w(a到b路段的承重),求卡车最重的重量是多少可以从上面经过. 思路:求所有路径中的最小的边的最大值.可以用迪杰斯特拉算法,只需 ...
- POJ 1797 Heavy Transportation (Dijkstra变形)
F - Heavy Transportation Time Limit:3000MS Memory Limit:30000KB 64bit IO Format:%I64d & ...
- POJ 1797 Heavy Transportation(Dijkstra变形——最长路径最小权值)
题目链接: http://poj.org/problem?id=1797 Background Hugo Heavy is happy. After the breakdown of the Carg ...
- POJ 1797 Heavy Transportation(Dijkstra)
http://poj.org/problem?id=1797 题意 :给出N个城市M条边,每条边都有容量值,求一条运输路线使城市1到N的运输量最大. 思路 :用dijkstra对松弛条件进行变形.解释 ...
- POJ 1797 Heavy Transportation (dijkstra 最小边最大)
Heavy Transportation 题目链接: http://acm.hust.edu.cn/vjudge/contest/66569#problem/A Description Backgro ...
- poj 3013 最短路变形
http://poj.org/problem?id=3013 给出n个点,m个边.给出每个点的权值,每个边的权值.在m条边中选n-1条边使这n个点成为一棵树,root=1,求这棵树的最小费用,费用=树 ...
随机推荐
- HDU2732 Leapin' Lizards 最大流
题目 题意: t组输入,然后地图有n行m列,且n,m<=20.有一个最大跳跃距离d.后面输入一个n行的地图,每一个位置有一个值,代表这个位置的柱子可以经过多少个猴子.之后再输入一个地图'L'代表 ...
- hdu2126 Buy the souvenirs
Problem Description When the winter holiday comes, a lot of people will have a trip. Generally, ther ...
- 01背包记录路径 (例题 L3-001 凑零钱 (30分))
题意: 就是找出来一个字典序最小的硬币集合,且这个硬币集合里面所有硬币的值的和等于题目中的M 题解: 01背包加一下记录路径,如果1硬币不止一个,那我们也不采用多重背包的方式,把每一个1硬币当成一个独 ...
- Databricks 第11篇:Spark SQL 查询(行转列、列转行、Lateral View、排序)
本文分享在Azure Databricks中如何实现行转列和列转行. 一,行转列 在分组中,把每个分组中的某一列的数据连接在一起: collect_list:把一个分组中的列合成为数组,数据不去重,格 ...
- 二进制安装kubernetes(一) 环境准备及etcd组件安装及etcd管理软件etcdkeeper安装
实验环境: 架构图: 主机环境: 操作系统:因docker对内核需要,本次部署操作系统全部采用centos7.6(需要内核3.8以上) VM :2C 2G 50G * 5 PS:因后面实验需要向k8 ...
- 洛谷p1981 表达式求值
#include <iostream> #include <cstdio> #include <cstring> using namespace std; char ...
- CSS 滚动条宽度 All In One
CSS 滚动条宽度 All In One 滚动条宽度 IE 16px Chrome 12px scrollbar width bug 改变设计稿的宽度,没考虑到 scrollbar width sol ...
- Docker In Action
Docker In Action Docker 实战 https://docs.docker.com/get-started/overview/ Docker Engine Docker Archit ...
- perl 在windows上获取当前桌面壁纸
更多 #!/usr/bin/perl # 在windows获取当前的桌面壁纸 # See also: https://www.winhelponline.com/blog/find-current-w ...
- js滚轮事件兼容写法
/** * 简易的事件添加方法 */ define(function(require, exports, module) { exports.addEvent = (function(window, ...