Uvaoj 10048 - Audiophobia(Floyd算法变形)

  1 /*
 2    题目大意:
 3       从一个点到达另一个点有多条路径,求这多条路经中最大噪音值的最小值! 、
 4
 5    思路:最多有100个点,然后又是多次查询,想都不用想,Floyd算法走起!
 6 */
 7 #include<iostream>
 8 #include<cstring>
 9 #include<cstdio>
10 #define INF 0x3f3f3f3f
11 using namespace std;
12
13 int map[105][105];
14
15 int main(){
16    int n, m, q;
17    int u, v, d;
18    int cnt=0;
19    scanf("%d%d%d", &n, &m, &q);
20    while((n || m || q)){
21          memset(map, 0x3f, sizeof(map));
22       while(m--){
23          scanf("%d%d%d", &u, &v, &d);
24          map[u][v]=map[v][u]=d;
25       }
26       for(int k=1; k<=n; ++k)
27          for(int i=1; i<=n; ++i)
28            for(int j=1; j<=n; ++j){
29              int dd=max(map[k][j], map[i][k]);
30              if(map[i][j] > dd)
31                 map[i][j] = dd;
32            }
33       printf("Case #%d\n", ++cnt);
34       while(q--){
35          scanf("%d%d", &u, &v);
36          if(map[u][v]==INF)
37             printf("no path\n");
38          else
39             printf("%d\n", map[u][v]);
40       }
41       scanf("%d%d%d", &n, &m, &q);
42       if((n || m || q))
43          printf("\n");
44    }
45    return 0;
46 } 

Uvaoj 10048 - Audiophobia(Floyd算法变形),布布扣,bubuko.com

时间: 2024-08-04 07:29:42

Uvaoj 10048 - Audiophobia(Floyd算法变形)的相关文章

uvs 10048 Audiophobia floyd的变形

#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <stack> #include <cstdlib> #include <cmath> #include <set> #include <map> #include <vector> #include <cstri

UVAOJ 10048 - Audiophobia Floyd

链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=989 题意&题解: 紫书P365 代码: 31 int c, s, q; 32 int d[MAXN][MAXN]; 33 34 int main() { 35 ios::sync_with_stdio(false), cin.tie(0); 36 int cas = 1;

POJ2240——Arbitrage(Floyd算法变形)

Arbitrage DescriptionArbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar buys 0.5 British pound, 1 British pound buys

Arbitrage(最短路-floyd算法变形求正权)

Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16127   Accepted: 6780 Description Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currenc

uva 10048 - Audiophobia(floyd 的变形)

给出一个无向连通图以及边权,目的求从一个点到另一个点的路径中 边权最大值 最小的那条路径,输出的是该条路径的最大边权. 因为是两点间路径问题,且数据量很小(只有100个) ,所以考虑使用floyd算法. 但是要求的并不是传统 floyd 所求的 两点之间最短路 问题,但是通过理解floyd算法的原理,可以发现floyd的思想可以用来解决这种问题: 对于任何一条至少包含两条边的路径i->j,一定存在一个中间点k,使得i->j的总长度等于i->k与k->j的长度之和.因为路径可能有多个

10048 - Audiophobia (Floyd)

该题是Floyd算法的一个巧妙变形,虽然AC率很高,但是真正要灵活变化到做出该题,显然要明白Floyd算法的思想和原理 ,弄清楚为什么可以这样更改算法的核心部分. Floyd算法其实利用了动态规划的思想,适合求解结点不是很多的稠密图 . 我们都知道,动态规划在利用循环嵌套求解时是要规定一个次序的,这样才能将状态成功的转移 .该题的次序就是由k来定义的,从小到大枚举k,定义其意义为i和j之间一点. 那么对于每一个i和j以及每一个k,最优状态就的状态转移方程d[i][j] = min(d[i][j]

ACM: POJ 3660 Cow Contest - Floyd算法

链接 Cow Contest Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Eac

最短路径Dijkstra算法和Floyd算法整理、

转载自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路径—Dijkstra算法和Floyd算法 Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止.Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹

最短路径——Floyd算法

如何求一张图中任意两顶点之间的最短路径长度,这里写一种最简单的算法——Floyd算法: 1 #include<stdio.h> 2 3 #define inf 9999 4 5 int main() 6 { 7 int e[10][10]; //用邻接矩阵表示图 8 printf("请输入顶点和边的数目:"); 9 int n,m; 10 scanf("%d%d",&n,&m); 11 for(int i=0;i<n;i++) 12