poj1125
时间:2019-08-26
本文章向大家介绍poj1125,主要包括poj1125使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.链接地址
https://vjudge.net/problem/POJ-1125#author=Amove
2.问题描述
三角洲的消息不知为何泄露了出去。间谍对传递的信息十分敏感。现在你被雇佣去开发一种在间谍之间传播虚假信息的程序,以次来保护各个领导人的安全。为了获得最大的效果,你必须在尽可能快的时间内传播谣言。
不幸的是,间谍们只信赖来自他们认为是“可靠来源”的消息。这意味着你必须在开始传播流言时考虑他们之间的关系。当流言开始传播时,某个间谍需要一定的时间将其传递给他的所有线人。
你的任务是编写一个程序,输出需要选择哪个间谍作为流言传播的起点,以及这个流言传播完整个间谍圈所需的时间。所需的时间指的是最后一个间谍接受到消息所花费的总时间。
输入样例
3 2 2 4 3 5 2 1 2 3 6 2 1 2 2 2 5 3 4 4 2 8 5 3 1 5 8 4 1 6 4 10 2 7 5 2 0 2 2 5 1 5 0
输出样例
3 2 3 10
3.解题思路
从一个经纪人开始传递消息,直到所有人都收到消息
也就是说只要找到该经纪人到其它所有点的最短距离中的最大一个时间,就说明最后一个也收到消息了。
而我们所要做的就是找到从每个经纪人为出发点的这样一个时间,再取其中最小的就是题目所要的时间了
4.算法实现源代码
#include <iostream> #include <cstring> #include <cstdio> #define max(a,b) a>b?a:b using namespace std; const int inf = 0x3f3f3f3f; const int N = 110; int map[N][N]; int dis[N][N]; int n; void Floyd() { memset(map,inf,sizeof(map)); for(int i=1; i<=n; i++) { int t,x,s; scanf("%d",&t); while(t--) { scanf("%d%d",&x,&s); map[i][x]=s; } } for(int t=1; t<=n; t++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) map[i][j]=min(map[i][j],map[i][t]+map[t][j]); } int main() { while(~scanf("%d",&n) && n) { Floyd(); int ans=0x3f3f3f3f,time; for(int i=1;i<=n;i++) { int tmp=0; for(int j=1;j<=n;j++) { if(i==j) continue; if(map[i][j]>tmp) tmp=map[i][j]; } if(ans>tmp){ ans=tmp; time=i; } } printf("%d %d\n",time,ans); } return 0; }
原文地址:https://www.cnblogs.com/KasenBob/p/11411562.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法