Berlin Programming Contest 2004 Heavy Transportation /// dijkstra oj22604
题目大意:
输入t;t为样例数
每个样例输入n,m;n 为顶点个数 m 为路径数
接下来m行 每行输入 u v w ;从 u 点到 v 点的路承重为 w
输出 车子若想通过 1~n的最短路 车重需限制在多少之内
1
3 3
1 2 3
1 3 4
2 3 5
Scenario #1:
4
邻接阵dijkstra
重点在此式 dis[i]=max(min(dis[ind],G[ind][i]),dis[i])
即更新 dis[] 时存入的应该是max(min(本条之前路径的承重限制,当前路段的承重限制),其他路径经过该点的承重限制)
经过同条路径 各个路段的承重限制 应选较小的
经过同一个点 各条路径的承重限制 应选较大的
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int n,m;
int G[][];
int vis[],dis[];
void dijk()
{
while()
{
int maxi=-,ind;
for(int i=;i<=n;i++)
if(!vis[i] && dis[i]>maxi)
maxi=dis[i], ind=i;
if(maxi==-) break;
vis[ind]=;
for(int i=;i<=n;i++)
if(!vis[i])
dis[i]=max(min(dis[ind],G[ind][i]),dis[i]);
}
}
int main()
{
int t; scanf("%d",&t);
for(int j=;j<=t;j++)
{
scanf("%d%d",&n,&m);
memset(vis,,sizeof(vis));
memset(G,,sizeof(G));
while(m--)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
G[u][v]=G[v][u]=w;
} vis[]=;
for(int i=;i<=n;i++)
if(!vis[i]) dis[i]=G[][i];
dijk();
printf("Scenario #%d:\n%d\n\n",j,dis[n]);
} return ;
}
Berlin Programming Contest 2004 Heavy Transportation /// dijkstra oj22604的更多相关文章
- 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变形)
POJ.1797 Heavy Transportation (Dijkstra变形) 题意分析 给出n个点,m条边的城市网络,其中 x y d 代表由x到y(或由y到x)的公路所能承受的最大重量为d, ...
- poj1797 Heavy Transportation Dijkstra算法的简单应用
题目链接:http://poj.org/problem?id=1797 题目就是求所有可达路径的其中的最小值边权的最大值 即对于每一条能够到达的路径,其必然有其最小的承载(其实也就是他们自身的最大的承 ...
- POJ1797 Heavy Transportation 【Dijkstra】
Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 21037 Accepted: ...
- POJ1797 Heavy Transportation —— 最短路变形
题目链接:http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K T ...
- POJ 1797 Heavy Transportation SPFA变形
原题链接:http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K T ...
- POJ 1797 Heavy Transportation (最大生成树)
题目链接:POJ 1797 Description Background Hugo Heavy is happy. After the breakdown of the Cargolifter pro ...
- POJ 1797 Heavy Transportation (dijkstra 最小边最大)
Heavy Transportation 题目链接: http://acm.hust.edu.cn/vjudge/contest/66569#problem/A Description Backgro ...
- POJ 1797 Heavy Transportation (Dijkstra变形)
F - Heavy Transportation Time Limit:3000MS Memory Limit:30000KB 64bit IO Format:%I64d & ...
随机推荐
- (getElementBy**)与 querySelector(querySelectorAll) 的区别
1. 通过类似于 document.getElementByTagName('div') 这种方式获取到的类数组,无法通过 forEach 进行遍历(可以通过for循环):而通过document.qu ...
- NX二次开发-获取矩阵值UF_CSYS_ask_matrix_values
NX9+VS2012 #include <uf.h> #include <uf_csys.h> UF_initialize(); //获取WCS标识 tag_t WcsId = ...
- 如何通过编程发现Java死锁
本文由 ImportNew - rookie_sam 翻译自 Dzone.欢迎加入翻译小组.转载请见文末要求. 死锁是指,两个或多个动作一直在等待其他动作完成而使得所有动作都始终处在阻塞的状态.想要在 ...
- "Access denied for user 'root@localhost' 试一下你的mysql是不是用任何密码都可以登录,如果是的话这里
https://blog.csdn.net/light_breeze/article/details/82070222 花了三小时...竟然是因为这个
- RN相关命令
添加第三方库 npm install --save xxx react-native link 链接库 react-native react-native -v 查看RN版本 npm info re ...
- 10.1 Nested vectored interrupt controller (NVIC) 嵌套矢量中断控制器
特点 60个可屏蔽中断通道(不包含16个Cortex™-M3的中断线): 16个可编程的优先等级(使用了4位中断优先级): 低延迟的异常和中断处理: 电源管理控制: 系统控制寄存器的实现: 1. 中断 ...
- POJ2406-Power Strings-KMP循环节/哈希循环节
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...
- CodeForces-1234C-Pipes-dfs
You are given a system of pipes. It consists of two rows, each row consists of nn pipes. The top lef ...
- java时间工具类,时间相互转换
/* * @author XueWeiWei * @date 2019/8/26 16:22 */ package com.nps.utils; import java.text.ParseExcep ...
- 使用反射机制,获取 ArrayList 的容量大小
本文所有说明及代码示例都是基于JDK 1.8 ArrayList 提供size()方法获取当前集合的元素数量,但无法知道当前集合的容量,翻看 ArrayList 的源代码,可以看到字段 elemen ...