poj 1125 Floyd简单
这是求所有节点间最短路径的题。果断用floyd,三个for循环就OK!如果不懂floyd,请看这里。题意有点绕。。。我不知道怎么描述,看了discuss里面有个人的解释,非常好。请看下面:
释疑:
- 一个人可以同时给几个人发送消息
- 结束状态必须是所有人都受到了消息
思路:
1. 通过Stockbrokers(SB?)i发消息,所有人同时收到所花时间 (可以是无穷哦~)
2. 找出第一步所得结果中的值最小的那一个
3. 如果第二步所得结果为无穷,说明此图不可联通~
#include <iostream> #include <fstream>using namespace std; #define INF 10000 #define LEN 105 #define MAX(a,b) (a>b?a:b)int path[LEN][LEN]; int map[LEN][LEN]; int n,maxcost,maxid;void Floyd() {int k,i,j; /* for(i=1; i<=n; i++){for(j=1; j<=n; j++)path[i][j]=i;} */for(k=1; k<=n; k++){for(i=1; i<=n; i++){for(j=1; j<=n; j++){if(i!=j && map[i][j]>map[i][k]+map[k][j]) //不用求i->i {map[i][j]=map[i][k]+map[k][j];path[i][j]=path[k][j];}}}} }void GetResult() {int i,j;bool flag;maxcost=INF;for(i=1; i<=n; i++){int tem_max=0;flag=true;for(j=1; j<=n; j++) //寻找i到其它节点的最短路径中的最大者 {if(map[i][j]==INF) //i->j不能到达 {if(i==j) //i->i 不计算continue;else{flag=false;break;}}else{tem_max=MAX(map[i][j],tem_max);}}if(flag==false)continue;else if(tem_max<maxcost) //寻找最小 {maxcost=tem_max;maxid=i;}} }int main() {int i,j;freopen("acm.txt","r",stdin);while(scanf("%d",&n)!=EOF && n){for(i=0; i<=n; i++){for(j=0; j<=n; j++){ map[i][j]=INF; //表示不能到达 }}int m,to,co; for(i=1; i<=n; i++){scanf("%d",&m);for(j=1; j<=m; j++){scanf("%d%d",&to,&co);map[i][to]=co;}}Floyd();GetResult();if(maxcost==INF)printf("disjoint\n");elseprintf("%d %d\n",maxid,maxcost);}return 0; }
转载于:https://www.cnblogs.com/Jason-Damon/archive/2012/04/24/2467773.html
poj 1125 Floyd简单相关推荐
- poj 1125 Stockbroker(多源最短路径)
题目来源:POJ 1125 简单题目分析及思路: 题意比较难懂,但是思路是多源最短路径,采用Floyd算法. Floyd是一种动态规划的算法,代码简洁易懂,对于稠密图效率要高于Dijkstra算法,但 ...
- Poj 1125 Stockbroker Grapevine(Floyd算法求结点对的最短路径问题)
一.Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a ...
- Poj(2240),Floyd求汇率是不是赚钱
题目链接:http://poj.org/problem?id=2240. Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max. #include <iostream> # ...
- POJ 3615 floyd 求任意起点终点的最短路
http://poj.org/problem?id=3615 题意:求起点到终点的最短路,不存在则输出-1.这题居然tle两次,把floyd放在外面就行了. View Code // I'm lanj ...
- hdu-1392 Surround the Trees poj Rope (简单凸包)
hdu : http://acm.hdu.edu.cn/showproblem.php?pid=1392 题意:给你n个数的坐标,用一根绳子把它们围起来,问你需要多长的绳子? (当数的个数为2时特判 ...
- POJ 2263 floyd思想
http://poj.org/problem?id=2263 题意:汽车的载重量没有限制,取决于道路的承载能力,求起点到终点所经过的路径不会超过道路的承载限制. 分析:本题并不是求最短路径,而是求通过 ...
- The Geodetic Set Problem - POJ 1612 Floyd求最短路径所有点集
题目链接 POJ 1612 Description Let G = (V,E) be a connected graph without loops and multiple edges, where ...
- POJ 1125 Stockbroker Grapevine
题意:有n个人,传播谣言,每个人向其他人传播的时间作为边权,构成一个有向图,问把谣言告诉谁能最快传到所有人,输出这个人和最短时间. 解法:最短路.一个人传到所有人的最短时间即他到所有人最短路的最大值, ...
- poj 1470(简单LCA 倍增法)
题意:给你一个树,有若干个询问,然后让你统计每个结点在询问中做了几次LCA.按照结点顺序输出. 思路:这也是简单的LCA题目,我用的是倍增法.每次查询在相应结点标记上++,最后输出即可.这道题的输入处 ...
- poj 3660(Floyd求传递闭包)
Cow Contest Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9317 Accepted: 5249 Descr ...
最新文章
- Eclipse:Cannot complete the install because of a conflicting dependency.问题解决
- 汇编解析(6)-二进制文件(嵌入式,纯二进制格式的文件)进行反汇编和汇编
- (一)git简介及安装
- 企业网站 源码 服务邮箱:_后来才知道:温州腾讯企业邮箱定制服务
- 学校校车运营各项安全管理制度_学校校车接送安全管理制度(通用3篇)
- 计算机的用户控制,我的电脑我做主——Windows账户家长控制-用户账户控制设置...
- 从Dataframe训练数据,构造可迭代训练的batch数据
- UVA10912 Simple Minded Hashing【DP】
- PotPlayer播放器在双屏扩展模式下,视频播放时所遇到的几个常见问题的专业解答
- 遗传算法 python_Python实现入门级遗传算法
- Python_基础1
- oracle sql语句加减,Oracle sql 常用加减法
- 仿真软件proteus构建LCD1602四线驱动实验
- 《博德之门3》的许多设计,还不如上世纪的前作
- 中国大学MOOC公开信息收集
- 我运营公众号这一个月
- 聚合供应链,Saas系统,商品供应链
- mall 电商 api 接口文档
- 粮食行业视频监控系统互联互通技术规范
- django2.0 快速实现注册
热门文章
- springboot整合mybatis-pluss、sharding-JDBC 水平分表demo
- Idea搭建SpringCloud(四)------利用Feign实现负载均衡
- scrollView截取指定区域的图片
- Js实现input上传图片并显示缩略图
- clock_gettime接口和linux时间系统
- VC++中轻松实现滑动(Slider)控件
- 《云数据中心构建实战:核心技术、运维管理、安全与高可用》——2.4 云计算的发展历程与未来趋势...
- 是谁让你的 Linux 平稳运行?感谢封包人吧
- 【oracle】sql处理重复数据
- Android开发小结Part11:SQLite 通过.db文件导入已有数据库