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 ...
随机推荐
- Codeforces 665A. Buses Between Cities 模拟
A. Buses Between Cities time limit per test: 1 second memory limit per test: 256 megabytes input: s ...
- easyui-tabs及其内容展示
方案一<div class="easyui-panel"> <div class="easyui-tabs" fit=" ...
- C山寨C++
#include <stdio.h> #include <string.h> #include <malloc.h> typedef struct Aclass_s ...
- 【JAVA】通过URLConnection/HttpURLConnection发送HTTP请求的方法(一)
Java原生的API可用于发送HTTP请求 即java.net.URL.java.net.URLConnection,JDK自带的类: 1.通过统一资源定位器(java.net.URL)获取连接器(j ...
- 让QQ好友现形
方法一 现在使用QQ的朋友,越来越注重保护自己的个人信息,如果对方将个人资料设置为保密你就无法看到对方的资料了,而这位好友如果又有着不断变换昵称的不良习惯,那么随着QQ好友名单的不断增加,时间一长,你 ...
- 常见的web服务器软件分类
(1)ApacheApache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上.Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软 ...
- 2018.07.06 BZOJ1208: HNOI2004宠物收养所(非旋treap)
1208: [HNOI2004]宠物收养所 Time Limit: 10 Sec Memory Limit: 162 MB Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收 ...
- Vim配置(转)
1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按“F8”可进行C.C++代码的调试 2.自动插入文件头 ,新建C.C++源文件时自动插入表头:包括文件名.作者.联系方式. ...
- BZOJ 1003 物流运输 (dp + dijkstra)
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8672 Solved: 3678[Submit][Stat ...
- 记一次项目使用webuploader爬坑之旅
因前端页面开发使用的为VUE开发,又要支持IE9,遂只有基于webuploader封装一个上传组件.地址:https://github.com/z719725611/vue-upload-web ...