UVa 10048 - Audiophobia(Floyd变形)
链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=989
题意:
输入一个C个点S条边(C≤100,S≤1000)的无向带权图,边权表示该路径上的噪声值。
当噪声值太大时,耳膜可能会受到伤害,所以当你从某点去往另一个点时,总是希望路上经过的最大噪声值最小。
输入一些询问,每次询问两个点,输出这两点间最优路径上的最大噪声值。
分析:
直接用floyd算法,但是要把加法改成max。
为什么可以这样做呢?不管是floyd算法还是dijkstra算法,都是基于这样一个事实:
对于任意一条至少包含两条边的路径i->j,一定存在一个中间点k,使得i>j的总长度等于i->k与k->j的长度之和。
对于不同的点k,i->k和k->j的长度之和可能不同,最后还需要取一个最小值才是i->j的最短路径。
把刚才的推理中“之和”换成“取最大值”,推理仍然适用。
代码:
import java.io.*;
import java.util.*;
import static java.lang.Math.*; public class Main {
Scanner cin = new Scanner(new BufferedInputStream(System.in));
final int INF = 0x3f3f3f3f;
final int UP = 100 + 5;
int G[][] = new int[UP][UP]; void MAIN() {
for(int cases = 1; ; cases++) {
int c = cin.nextInt();
int s = cin.nextInt();
int q = cin.nextInt();
if(c + s + q == 0) break;
for(int i = 0; i < c; i++) {
G[i][i] = 0;
for(int t = i+1; t < c; t++) G[i][t] = G[t][i] = INF;
}
for(int f, b, v, i = 0; i < s; i++) {
f = cin.nextInt() - 1;
b = cin.nextInt() - 1;
v = cin.nextInt();
G[f][b] = G[b][f] = min(G[b][f], v);
} for(int k = 0; k < c; k++) {
for(int i = 0; i < c; i++) {
for(int j = 0; j < c; j++) {
G[i][j] = min(G[i][j], max(G[i][k], G[k][j]));
}
}
} if(cases > 1) System.out.println();
System.out.printf("Case #%d\n", cases);
for(int f, b, i = 0; i < q; i++) {
f = cin.nextInt() - 1;
b = cin.nextInt() - 1;
if(G[f][b] == INF) System.out.println("no path");
else System.out.println(G[f][b]);
}
}
} public static void main(String args[]) { new Main().MAIN(); }
}
UVa 10048 - Audiophobia(Floyd变形)的更多相关文章
- UVA - 10048 Audiophobia Floyd
思路:套用Floyd算法思想,d(i, j) = min(d(i,j), max(d(i,k), d(k,j)),就能很方便求得任意两点之间的最小噪音路径. AC代码 #include <cst ...
- UVA10048 Audiophobia[Floyd变形]
UVA - 10048 Audiophobia Consider yourself lucky! Consider yourself lucky to be still breathing and h ...
- UVA - 10048 Audiophobia(Floyd求路径上最大值的最小)
题目&分析: 思路: Floyd变形(见上述紫书分析),根据题目要求对应的改变判断条件来解题. 代码: #include <bits/stdc++.h> #define inf 0 ...
- uva 10048 Audiophobia(最小生成树)
题目链接:10048 - Audiophobia 题目大意:有n个城市,和m条街道,每条街道有一个噪音值,q次去问,从城市a到城市b,路径上分贝值的最大值最小为多少. 解题思路:与uva 10099的 ...
- UVA - 10048 Audiophobia (Floyd应用)
题意:求出两点之间所有路径最大权值的最小值. 思路:转变一下Floyd的形式即可: 注意:注意初始化问题,还有UVA奇葩的输出形式. 代码如下: #include<iostream> #i ...
- UVa 10048 Audiophobia【Floyd】
题意:给出一个c个点,s条边组成的无向图,求一点到另一点的路径上最大权值最小的路径,输出这个值 可以将这个 d[i][j]=min(d[i][j],d[i][k]+d[k][j]) 改成 d[i][j ...
- 紫书 例题 11-5 UVa 10048 (Floyd求最大权值最小的路径)
这道题是Floyd的变形 改成d[i][j] = min(d[i][j], max(d[i][k], d[k][j]))就好了. #include<cstdio> #include< ...
- UVA 10048 Audiophobia 任意两点的路径上最大的边
题目是要求任意给定两点的的路径上最大的边,最终输出这些最大边中最小的值,也就是求一条路径使得这条路径上最大的边在所有连通两点的路径中最短.根据Floyd—Warshall算法改造一下就行了.dp[i] ...
- UVa 10048: Audiophobia
这道题要求我们求出图中的给定的两个节点(一个起点一个终点,但这是无向图)之间所有“路径中最大权值”的最小值,这无疑是动态规划. 我开始时想到根据起点和终点用动态规划直接求结果,但最终由于题中S过大,会 ...
随机推荐
- MySql 模糊连接
我们有时候会遇到比较扯的数据库设计,也可能处于某种原因,或当时特殊考虑,情况类似如下: 表A,主键Id: 表B,关联字段 = 表A的Id的逗号连接,如:1009,2393,1235 B表的一行,对应A ...
- [转]VS清除打开项目时的TFS版本控制提示
本文转自:http://www.cnblogs.com/weixing/p/5219294.html 对于曾经做过TFS版本控制的项目,在版本控制服务不可用的时候,依然会在每次打开项目的时候都提示:当 ...
- 面向对象 OOP中的抽象类,接口以及多态
[抽象类与抽象方法] 1.什么是抽象方法? 没有方法体{}的方法,必须使用abstract关键字修饰,这样的方法,我们称之为抽象方法. abstract function say() 2.什么是抽象类 ...
- shodan在渗透测试中的应用
场景1:想搜索美国所有的elasticsearch服务器 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.设计 ...
- mysql,简单介绍一下索引
汉字很多,人力有时尽,人不可能记住所有的字,为了解决这个问题,于是有了字典.数据库里的数据很多,为了方便检索,于是有了索引. 索引,是一种数据结构,在这种数据结构中实现了高级的查找算法,索引可以帮助我 ...
- flask路由末端带斜线和不带斜线的区别
路由末端带有“/” app.route('/test/') 在浏览器中输入http://127.0.0.1:5000/test/ 和http://127.0.0.1:5000/test都能访问 路由末 ...
- sftp java 上传
1. 注意问题 uri的格式: sftp://zhangsan:123456@10.10.10.10:22 dir问题 : 判断有没有 没有创建 然后进入 类推 config问题: StrictHos ...
- 为什么canvas宽高要设置在标签内>>宽高设置在style和设置在canvas的区别
一直很困惑为什么canvas标签和其他标签不一样,宽高需要设置在canvas标签里,设置在style里就会有问题. 纯粹个人理解,有错误欢迎指出. > 结论写在头 设置在style里有问题其实是 ...
- wampserver 点击跳转localhost变0.0.0.0的解决方法!
最近下载新版本wampserver发现点击项目不会自动添加localhost了,导致访问项目很麻烦. 修改如下 修改wamp根目录下的wampmanager.conf urlAddLocalhost ...
- Linux基础之-元字符
Bash中的特殊字符,键盘上能敲出来的特殊字符都有其特殊意义,强调一点:元字符是被shell解释的. 1. '',取命令的执行结果 [root@MiWiFi-R3-srv ~]# ls4.txt an ...