例题11-5 噪音恐惧症 UVa10048
来源:互联网 发布:花生壳域名注册收费吗 编辑:程序博客网 时间:2024/04/27 17:17
1.题目描述:点击打开链接
2.解题思路:本题的解题过程类似于Floyd算法的原理,即:任意一条至少包含两条边的路径,一定存在一个中间点k,使得d(i,j)=d(i,k)+d(k,j),其中d(i,j)表示(i,j)的最短长度,对于不同的点k,d(i,k)+d(k,j)可能不相同,因此最后要取最小值。对于本题,即max(d[i][k],d[k][j])可能不同,因此最后要取最小值。所以,只需要把Floyd算法的最后一句修改为d[i][j]=min{d[i][j],max(d[i][k],d[k][j])}即可。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;#define N 1000+10#define INF 100000000int d[N][N];int c,s,q;int main(){freopen("t.txt", "r", stdin);int rnd = 0;while (cin >> c >> s >> q&&(c||s||q)){int c1, c2, del;for (int i = 0; i < N;i++)for (int j = 0; j < N; j++)d[i][j] = INF;for (int i = 0; i < s; i++){cin >> c1 >> c2 >> del;d[c1][c2] = del;d[c2][c1] = del;}for (int k = 1; k <= c;k++)for (int i = 1; i <= c;i++)for (int j = 1; j <= c;j++)d[i][j] = min(d[i][j], max(d[i][k], d[k][j]));if (rnd)cout << endl;printf("Case #%d\n", ++rnd);while (q--){int u, v;cin >> u >> v;if (d[u][v] < INF)cout << d[u][v] << endl;else puts("no path");}}return 0;}
0 0
- 例题11-5 噪音恐惧症 UVa10048
- 例题11-5 UVA - 10048 Audiophobia 噪音恐惧症(Floyd算法)
- 噪音恐惧症(Audiophobia,UVa10048)——floyd变形,最大最小化
- Uva 10048 噪音恐惧症——Floyd变形
- [容易] UVa OJ 10048 噪音恐惧症 Floyd
- 噪音恐惧症,紫书P365Uva10048(floyd算法应用)
- uva10048
- uva10048
- UVa10048
- uva10048
- 国庆恐惧症
- 春节恐惧症
- Flash恐惧症
- 节日恐惧症
- TX恐惧症
- 亲密关系恐惧症
- 大龄恐惧症 (zz)
- 恐惧
- 静态成员和非静态成员
- sublime 缩进设置
- 在chrome中启动xdebug调试
- Linux SCSI子系统分析(二)发现target的过程
- CodeForces 384B Multitasking(大概是贪心)
- 例题11-5 噪音恐惧症 UVa10048
- 多队列块层
- 给android开发者的大福利
- vim 的基本操作
- 《TCP-IP详解卷1:协议》读书笔记四 ARP地址解析协议 .
- 关于未在本地计算机上注册"Microsoft.Ace.Oledb.12.0"提供程序的一个细节
- 算法导论插入排序算法python实现
- JS笔记整理(五)
- 初识FFT和NTT