NYOJ 1248 海岛争霸(Dijkstra变形——最短路径最大权值)
题目链接:
http://acm.nyist.net/JudgeOnline/problem.php?pid=1248
描述
- 输入
- 第1行: N M 表示有N个岛屿,M条直航路线
第2~M+1行: A B V 表示从岛屿A到岛屿B的航海路线的危险程度值为V。
接下面一行 : Q 表示询问的次数。
之后有Q个行: A B 表示询问从岛屿A 到岛屿B 所经过的航线,危险程度最小值
1<N≤100 0<M≤500 1≤ Q≤20 0 < V≤1000,
所有数据都是正整数。输入数据之间有一个空格。 - 输出
- 对于每个询问,输出占一行,一个整数,表示从岛屿A 到岛屿B 所经过的航线,危险程度最小值;若从岛屿A 无法到达岛屿B,则输出-1。
- 样例输入
-
10 8
1 2 5
1 3 2
2 3 11
2 4 6
2 4 4
6 7 10
6 10 5
10 7 2
5
2 3
1 4
3 7
6 7
8 3 - 样例输出
-
5
5
-1
5
-1 - 来源 第七届河南省程序设计大赛
- 题意描述:
- 输入顶点个数和道路条数以及道路信息
- 计算并输出最短路径的最大权值
- 解题思路:
- 求最短路径中的最大权值,使用Dijkstra变形算法即可。另外需要注意的是可能输入孤立点,那么遍历的时候可能会出现未知错误,所以加一条判断,当u没有被改变的时候,直接结束,输出-1
- 即可。
- AC代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int inf=;
int n,m,e[][],book[],dis[];
void Dijkstra(int a,int b);
int main()
{
int t1,t2,t3,t,a,b,i,j,k;
while(scanf("%d%d",&n,&m) != EOF)
{
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
if(i==j)
e[i][j]=;
else
e[i][j]=inf;
}
}
for(i=;i<=m;i++)
{
scanf("%d%d%d",&t1,&t2,&t3);
e[t1][t2]=e[t2][t1]=t3;
}
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&a,&b);
if(a==b)
printf("0\n");
else
Dijkstra(a,b);
}
}
}
void Dijkstra(int a,int b)
{
int i,j,u,v,mina;
memset(book,,sizeof(book));
book[a]=;
for(i=;i<=n;i++)
dis[i]=e[a][i];
u=-;
for(i=;i<=n-;i++)
{
mina=inf;
for(j=;j<=n;j++)
{
if(!book[j] && dis[j] < mina)
{
mina=dis[j];
u=j;
}
}
if(u==-)
break;
book[u]=;
for(v=;v<=n;v++)
{
if(dis[v] > max(dis[u],e[u][v]))
dis[v]=max(dis[u],e[u][v]);
}
}
if(dis[b]==inf || u==-)
printf("-1\n");
else
printf("%d\n",dis[b]);
}
NYOJ 1248 海岛争霸(Dijkstra变形——最短路径最大权值)的更多相关文章
- POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
题目链接: http://poj.org/problem?id=2253 Description Freddy Frog is sitting on a stone in the middle of ...
- POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3790 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你 ...
- 第七届河南省赛B.海岛争霸(并差集)
B.海岛争霸 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 130 Solved: 48 [Submit][Status][Web Board] D ...
- POJ.1797 Heavy Transportation (Dijkstra变形)
POJ.1797 Heavy Transportation (Dijkstra变形) 题意分析 给出n个点,m条边的城市网络,其中 x y d 代表由x到y(或由y到x)的公路所能承受的最大重量为d, ...
- 【lightoj-1002】Country Roads(dijkstra变形)
light1002:传送门 [题目大意] n个点m条边,给一个源点,找出源点到其他点的‘最短路’ 定义:找出每条通路中最大的cost,这些最大的cost中找出一个最小的即为‘最短路’,dijkstra ...
- 算法-迪杰斯特拉算法(dijkstra)-最短路径
迪杰斯特拉算法(dijkstra)-最短路径 简介: 迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中 ...
- POJ 3255 Roadblocks (Dijkstra求最短路径的变形)(Dijkstra求次短路径)
Roadblocks Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16425 Accepted: 5797 Descr ...
- POJ - 2253 Frogger(Dijkstra变形题)
题意: 题目撰写者的英语真是艰难晦涩,看了别人题解,才知道这题题意. 两个forger 一个froger 要蹦到另外一个froger处,他们的最短距离是这样定义的 : The frog distanc ...
- POJ - 1511 Invitation Cards(Dijkstra变形题)
题意: 给定一个有向图,求从源点到其他各点的往返最短路径和.且这个图有一个性质:任何一个环都会经过源点. 图中的节点个数范围:0-100w; 分析: 我们先可以利用Dijkstra算法求解从源点到其余 ...
随机推荐
- Linux内置命令
主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1 bash内置命令 ...
- ActiveMQ (三) 讯息传送机制以及ACK机制
详析请看如下博客: http://blog.csdn.net/lulongzhou_llz/article/details/42270113 后续再做整理.
- jquery学习总结(超级详细)
本文仅针对jquery的部分知识点做总结,更为全面的可以去官网看中文文档.可以更为详细的了解jquery及其特性. window.onload $(document).ready() 执行 ...
- C# 防止同时调用=========使用读写锁三行代码简单解决多线程并发的问题
http://www.jb51.net/article/99718.htm 本文主要介绍了C#使用读写锁三行代码简单解决多线程并发写入文件时提示"文件正在由另一进程使用,因此该进程无 ...
- 房上的猫:java基础知识部分知识点
1.Java常见的注释有哪些,语法是怎样的? 1)单行注释用//表示,编译器看到//会忽略该行//后的所文本 2)多行注释/* */表示,编译器看到/*时会搜索接下来的*/,忽略掉/* */之间的文 ...
- Ruby学习之动态调用
作为一个动态语言,对象中的方法不会像静态语言一样需要验证确实存在,动态语言的对象之间一直保持着交谈,如果你调用一个不曾定义过的方法,程序也不会马上就报错而无法运行,只有当运行到你调用这个方法时,解释器 ...
- linux系统中,文件的三种特殊权限
背景介绍 在linux系统中,我们熟知有rwx三种权限,对应所有者,同组用户,其他用户三种用户的权限,一共9个位来指定一个文件的权限情况,通过chmod xxx 来更改权限属性,其中xxx是已八进制表 ...
- Vue 爬坑之路(三)—— 使用 vue-router 跳转页面
使用 Vue.js 做项目的时候,一个页面是由多个组件构成的,所以在跳转页面的时候,并不适合用传统的 href,于是 vue-router 应运而生. 官方文档: https://router.vue ...
- WKWebView强大的新特性
iOS11对WKWebView的功能进一步完善,新增如下功能: Manager Cookies Fileter unwanted content Provide custom resources 下面 ...
- Oracle 序列 CACHE 值必须小于 CYCLE 值的解决方法
之前创建sequence时碰到一个问题, 当我使用了cache时总是提示CACHE 值必须小于 CYCLE 值,查了下文档,找到这么一个公式 文档的大概意思是cache的值必须要小于通过这个公式计算得 ...