poj1125
题目大意:哎,意思看了半天,看了别人的解释才明白,就是说从一个经纪人出发传递消息,直到所有人都收到消息
也就是说只要找到该经纪人到其它所有点的最短距离中的最大一个时间,就说明最后一个也收到消息了。
而我们所要做的就是找到从每个经纪人为出发点的这样一个时间,再取其中最小的就是题目所要的时间了
代码如下
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxs = ;
const int INF = 0x3f3f3f3f;
int N,M;
int edge[maxs][maxs];
void dijkstra()
{
int totalTime[N+];
memset(totalTime,,sizeof(totalTime));
for(int v=;v<=N;v++)
{
int dist[maxs];//用来保存其它各点到选定点的最短距离
bool vis[maxs];//判断该点是否已经加入到集合中了
memset(vis,false,sizeof(vis));
vis[v]=true;
for(int i=;i<=N;i++)
dist[i]=edge[v][i];
for(int i=;i<=N;i++)
{
int mins=INF,k;
for(int j=;j<=N;j++)
if(!vis[j]&&dist[j]<mins)
{
mins = dist[j];
k=j;
}
vis[k]=true;//该点已经加入集合
//新的点加入,更新选定点到还没有被构造的点的最短距离
for(int j=;j<=N;j++)
if(!vis[j]&&edge[k][j]<INF&&(dist[k]+edge[k][j])<dist[j])
dist[j]=dist[k]+edge[k][j];
}
totalTime[v]=dist[];
for(int i=;i<=N;i++)
if(dist[i]>totalTime[v])
totalTime[v]=dist[i]; }
int index=;
for(int i=;i<N+;i++)
if(totalTime[i]<totalTime[index])
index=i;
if(totalTime[index]==INF)
printf("disjoint\n");
else
printf("%d %d\n",index,totalTime[index]);
}
int main()
{
freopen("in.txt","r",stdin);
while(scanf("%d",&N)!=EOF&&N)
{
for(int i=;i<=N;i++)
for(int j=;j<=N;j++)
edge[i][j]=INF;
for(int i=;i<=N;i++)
{
scanf("%d",&M);
int x,time;
edge[i][i]=;
for(int j=;j<=M;j++)
{
scanf("%d%d",&x,&time);
edge[i][x]=time;
}
}
dijkstra();
}
return ;
}
poj1125的更多相关文章
- POJ-1125 Stockbroker Grapevine---Floyd应用
题目链接: https://vjudge.net/problem/POJ-1125 题目大意: 股票经纪人要在一群人中散布一个谣言,而谣言只能在亲密的人中传递,题目各处了人与人之间的关系及传递谣言所用 ...
- poj1125&zoj1082Stockbroker Grapevine(Floyd算法)
Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Description Stockbrokers are known to ...
- POJ1125 Stockbroker Grapevine
Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a me ...
- poj1125最短路
Stockbroker Grapevine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30408 Accepted: ...
- poj1125(Floyd最短路)
//Accepted 164 KB 0 ms //floyd #include <cstdio> #include <cstring> #include <iostrea ...
- POJ1125 Stockbroker Grapevine(最短路)
题目链接. 分析: 手感不错,1A. 直接穷举的起点, 求出不同起点到其它点最短路中最长的一条的最小值(好绕). #include <iostream> #include <cstd ...
- poj1125 Stockbroker Grapevine Floyd
题目链接:http://poj.org/problem?id=1125 主要是读懂题意 然后就很简单了 floyd算法的应用 代码: #include<iostream> #include ...
- 最短路 poj1125
输入一个n表示有n个点,接下来n行,每行(假设是u)第一个数字m表示有m对数字(每一对两个数字v,w,表示u到v的时间w),后面接m对数字.找一个起点,它到其他点所花费的时间(求起点到其他点距离的最大 ...
- POJ1125 Stockbroker Grapevine 多源最短路
题目大意 给定一个图,问从某一个顶点出发,到其它顶点的最短路的最大距离最短的情况下,是从哪个顶点出发?须要多久? (假设有人一直没有联络,输出disjoint) 解题思路 Floyd不解释 代码 #i ...
随机推荐
- .zip/.rar打包与解压
Linux下如何解压.zip和.rar文件,对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们: 1)对于zip linux下提供了zip和unzip程序,zip是 ...
- pageX/pageY,screenX/screenY,clientX/clientY的差别
pageX/pageY,screenX/screenY,clientX/clientY的差别 $(document).click(function(e){ //x方向无差别 //alert(e.pag ...
- jsoup Java HTML解析器:使用选择器语法来查找元素
jsoup Java HTML解析器:使用选择器语法来查找元素 使用选择器语法来查找元素 问题 你想使用类似于CSS或jQuery的语法来查找和操作元素. 方法 可以使用Element.select( ...
- 2018.10.05 NOIP模拟 阶乘(简单数论)
传送门 签到题. 直接把所有数先质因数分解. 同时统计每一个在阶乘中会出现的质数出现的最少次数. 然后对于每一个这样的质数,我们求出满足其出现质数的m的最小值,然后求出所有m的最大值. 求m的时候可以 ...
- Django入门与实践-第15章:用户注销(完结)
# myproject/settings.py LOGOUT_REDIRECT_URL = 'home' http://127.0.0.1:8000/logout/ # myproject/urls. ...
- RHEL6解决无法使用YUM源问题(转)
RHEL的YUM源需要注册用户才能更新使用,由于CentOS和RHEL基本没有区别,并且CentOS已经被REHL收购.所以将RHEL的YUM源替换为CentOS即可.问题如下:[root@bogon ...
- POJ 3686 The Windy's (最小费用流或最佳完全匹配)
题意:有n个订单m个车间,每个车间均可以单独完成任何一个订单.每个车间完成不同订单的时间是不同的.不会出现两个车间完成同一个订单的情况.给出每个订单在某个车间完成所用的时间.问订单完成的平均时间是多少 ...
- Java文件复制删除操作合集
import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...
- nexus 私服跑一跑流程
尝试建立新项目上传,分享 D:\dev\workspace\helloworld>tree /F 卷 DATAPART 的文件夹 PATH 列表 卷序列号为 2C22-0A1A D:. │ po ...
- 玩转git分支
搞个代码的管理工具,居然不弄上分支啥的东西.这简直太low了.尤其是在使用了传说中得很牛X的Git的时候,尤其显得low.拿着青龙偃月刀当烧火棍子使,关公知道了还不重反人间教育你!? 远程分支 要说分 ...