UVA 10048 Audiophobia
2015-08-24 21:43
483 查看
给出一个图 求从任意给定的起点到终点的走过的权值最大的边的最小值
依旧可以用floyd算法 把加法改成min min改成max 刘汝佳的书上说的很清楚了 我很相信做uva上面题的 大多是看刘汝佳书的(顺便在这里吐槽下uva)
毕竟uva上的题 输出格式花样多 题目一般较长 写题解的人较少 也不像CF给数据看 而且uva还老挂 如果不是看刘汝佳的书上的中文题意 和很多神奇的想法 真想不出你能有什么理由坚持做uva的题
依旧可以用floyd算法 把加法改成min min改成max 刘汝佳的书上说的很清楚了 我很相信做uva上面题的 大多是看刘汝佳书的(顺便在这里吐槽下uva)
毕竟uva上的题 输出格式花样多 题目一般较长 写题解的人较少 也不像CF给数据看 而且uva还老挂 如果不是看刘汝佳的书上的中文题意 和很多神奇的想法 真想不出你能有什么理由坚持做uva的题
#include<iostream> #include<cstdio> #include<cstring> #include<cctype> #include<cmath> #include<vector> #include<queue> #include<map> #include<algorithm> #include<set> #define scnaf scanf #define cahr char #define bug puts("bugbugbug"); using namespace std; typedef long long ll; const int inf=100000000; int d[105][105]; int n; void init() { for(int i=0; i<=n; i++) for(int j=0; j<=n; j++) { if(i==j)d[i][j]=0; else d[i][j]=inf; } } void Floyd() { for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) if(d[i][k]<inf&&d[k][j]<inf) d[i][j]=min(d[i][j],max(d[i][k],d[k][j])); } int main() { int m,k; int Case=0; while(~scnaf("%d%d%d",&n,&m,&k)&&n+m+k) { int a,b,c; init(); for(int i=0;i<m;i++) { scnaf("%d%d%d",&a,&b,&c); d[b][a]=d[a][b]=min(d[a][b],c); } Floyd(); if(Case)puts(""); printf("Case #%d\n",++Case); for(int i=0;i<k;i++) { scanf("%d%d",&a,&b); if(d[a][b]==inf) puts("no path"); else printf("%d\n",d[a][b]); } } }
相关文章推荐
- Apache 配置 Basic 认证
- Linux命令之文件管理命令cp、mv、rm
- 2.7-Apache通过rewrite限制某个目录
- How to use python remove the '^M' when copy words from Windows to Linux
- getopt、getopt_long、getopt_long_only使用实例
- ubuntu 14.04安装opencv3.0.0
- poj2112 Optimal Milking --- 最大流量,二分法
- Linux 内核态与用户态
- Linux:awk命令详解
- 使用openssl API编写client和server
- AOP
- Forward+ Shading架构
- 2015-08-24 part4 kernel/linux3.0 移植
- 从零单排Opencv之开篇
- mac shell 设置dns
- Centos6.5里安装Hbase(伪分布式)
- 解决 RHEL 7/ CentOS 7/Fedora 出现Unit iptables.service failed to load
- bash shell的基础特性之一
- Spring Boot 内嵌Tomcat的端口号的修改
- Tomcat 7 域名访问配置一