POJ 1125 Stockbroker Grapevine
来源:互联网 发布:数据分析师工资怎么样 编辑:程序博客网 时间:2024/06/07 00:35
题意:给你n个股票经纪人,要你再找出联系所有人的最短时间,有则输出,无则输出一个字符串。
接下来是n组数据,每组数据开头表示第i个经纪人有m个联系人,接下来是m对数据 第一个表示 第几个联系人 第二个数则是联系到他所需要的时间
思路:这个题目主要的是理解题目的意思,理解之后就非常简单了,只要先求出每2个点的最短距离,然后再求出以第i个点为顶点到达第j个点所需要的最长距离,即可把所有的人联系一遍。因为我们求出每2个点的最短距离,所以可以用floyd算法了,这个算法是最容易理解的!
所以AC代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define inf 100int d[120][120];int main(){ int i,j,n,k; while(scanf("%d",&n)!=EOF) { if(n==0)break; for(i=1;i<=n;i++) for(j=1;j<=n;j++) { d[i][j]=inf; } for(i=1;i<=n;i++) { int u; scanf("%d",&u); for(j=1;j<=u;j++) { int v,w; scanf("%d %d",&v,&w); d[i][v]=w; } } for(i=1;i<=n;i++) //求出每2个点的最短距离 for(j=1;j<=n;j++) for(k=1;k<=n;k++) { if(j!=k&&d[j][k]>d[j][i]+d[i][k]) d[j][k]=d[j][i]+d[i][k]; } int temp,maxx,minn=inf; for(i=1;i<=n;i++)//每次以i为图的顶点 { maxx=0; for(j=1;j<=n;j++) //找出以i为顶点的最大距离点 if(i!=j&&maxx<d[i][j]) maxx=d[i][j]; if(maxx<minn) //替换 { minn=maxx; temp=i; } } if(minn<inf) printf("%d %d\n",temp,minn); else printf("disjoint\n"); } return 0;}
1 0
- poj 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- Poj 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- poj 1125-Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- poj 2676
- 内存中的字节对齐
- HTML 框架标记(1)——iframe(内嵌框架)
- android,音频频谱的绘制
- 手机视频监控解决方案(客户端)
- POJ 1125 Stockbroker Grapevine
- HDOJ 4893 Wow! Such Sequence!(线段树)
- 1547. To and Fro
- IOS-如何在UITableViewCell里进入ViewController
- APUE——进程关系
- Animation
- ios--文件创建,删除,判断某个文件是否存在
- 10分钟API Hook MessageBox
- HDU 1421 搬寝室——dp动态规划