POJ 1125 Stockbroker Grapevine(Floyd)
http://poj.org/problem?id=1125
题意:给你一个有向图,现在要你找一个起点来传播消息,问你要找那个点传播能使得其他所有点最快时间收到消息.即求到其他所有点的最短距离中的最大值最小的那个点.
分析:
建图,Floyd算法求解.然后一次求出所有点作为源点时的最短距离最大值即可.然后比较.
注意如果图中没有任何一个节点能完全的到达其他n-1个节点,那么这个输出” disjoint”.
AC代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#define INF 1e9
using namespace std;
const int maxn = 100+10;
int n;
int d[maxn][maxn];
int time[maxn];
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],d[i][k]+d[k][j]);
for(int i=1;i<=n;i++)//time保存个点到其他点的最短距离的最大值
time[i]=-1;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)if(i!=j)
time[i]=max(time[i],d[i][j]);
}
int main()
{
while(scanf("%d",&n)==1&&n)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
d[i][j]= i==j?0:INF;
for(int i=1;i<=n;i++)
{
int m; scanf("%d",&m);
while(m--)
{
int u,t;
scanf("%d%d",&u,&t);
d[i][u]=t;
}
}
floyd();
int id=-1,min_val=INF;//最小传播时间
for(int i=1;i<=n;i++)
if(min_val > time[i])
{
id=i;
min_val = time[i];
}
if(min_val==INF) printf("disjoint\n");
else printf("%d %d\n",id,min_val);
}
return 0;
}
分享到:
相关推荐
北大POJ1125-Stockbroker Grapevine【Floyd】 解题报告+AC代码
poj1125原创AC代码,用的是folyd算法,求出所有点之间的最短路径,再以此求出每个点到其他点的最长路径。。。
Net<br>Pku acm 3278 Catch That Cow<br>Pku acm 2253 Frogger<br>Pku acm 1062 昂贵的聘礼 Pku acm 1125 Stockbroker Grapevine Pku acm 1611 The Suspects Pku acm 2492 A Bug's Life 更多请访问:...
poj经典动态规划题目解题报告,包括经典的动态规划题目20多道,可以作为学习动态规划系统的资料,包括题目: Pku acm 1179 Polygon Pku acm 1125 Stockbroker Grapevine Pku acm 1160 post office Pku ...
北大POJ2240-Arbitrage【Floyd】 解题报告+AC代码
北大POJ2253-Frogger【Floyd】 解题报告+AC代码
pku online judge 通过源码 C/C++
sjdlkjf;lksajflkjsdkfjs;jfklsdf
POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类POJ分类
poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题报告poj 解题...
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240) (3)最小生成树算法(prim,kruskal) (poj1789,poj2485,poj1258,poj3026) (4)拓扑排序 (poj1094) (5)二分图的最大匹配 (匈牙利算法) (poj3041,poj3020) ...
POJ第1861题源码 POJ第1861题源码 POJ第1861题源码
北大POJ1159-Palindrome 解题报告+AC代码
C语言 poj npu 西工大 C语言Poj答案全完整打包,给有需要的朋友
poj 3414解题报告poj 3414解题报告poj 3414解题报告poj 3414解题报告
poj分类poj分类poj分类poj分类
poj 1012解题报告poj 1012解题报告poj 1012解题报告poj 1012解题报告
poj 2329解题报告poj 2329解题报告poj 2329解题报告poj 2329解题报告
北大POJ2002-Squares 解题报告+AC代码