POJ 1125 Stockbroker Grapevine(Floyd)
2016-04-27 19:21
417 查看
题目地址:http://poj.org/problem?id=1125
题意:有一群买股票的人,如何从中间选择一个人使得所有人都知道这个消息的时间最短
思路:先把N个人中最短路径中最长的算出来,再从N个人最长的路径中找出最短的
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int inf = 0x3f3f3f3f;
int map1[110][110];
int n;
void Floyd()
{
for(int k=1; k<=n; k++)
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(map1[i][j] > map1[i][k] + map1[k][j])
{
map1[i][j] = map1[i][k] + map1[k][j];
}
}
}
}
}
int main()
{
int m;
while(scanf("%d",&n) && n)
{
memset(map1,inf,sizeof(map1));
for(int i=1; i<=n; i++)
{
scanf("%d",&m);
for(int j=1; j<=m; j++)
{
int a,b;
scanf("%d%d",&a,&b);
map1[i][a] = b;
}
}
Floyd();
int ans = inf;
int l;
for(int i=1; i<=n; i++)
{
int max1 = 0;
for(int j=1; j<=n; j++)
{
if(i != j && map1[i][j] > max1)
max1 = map1[i][j];
}
if(max1 < ans)
{
ans = max1;
l = i;
}
}
if(ans == inf)
printf("disjoint\n");
else
printf("%d %d\n",l,ans);
}
return 0;
}
题意:有一群买股票的人,如何从中间选择一个人使得所有人都知道这个消息的时间最短
思路:先把N个人中最短路径中最长的算出来,再从N个人最长的路径中找出最短的
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int inf = 0x3f3f3f3f;
int map1[110][110];
int n;
void Floyd()
{
for(int k=1; k<=n; k++)
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(map1[i][j] > map1[i][k] + map1[k][j])
{
map1[i][j] = map1[i][k] + map1[k][j];
}
}
}
}
}
int main()
{
int m;
while(scanf("%d",&n) && n)
{
memset(map1,inf,sizeof(map1));
for(int i=1; i<=n; i++)
{
scanf("%d",&m);
for(int j=1; j<=m; j++)
{
int a,b;
scanf("%d%d",&a,&b);
map1[i][a] = b;
}
}
Floyd();
int ans = inf;
int l;
for(int i=1; i<=n; i++)
{
int max1 = 0;
for(int j=1; j<=n; j++)
{
if(i != j && map1[i][j] > max1)
max1 = map1[i][j];
}
if(max1 < ans)
{
ans = max1;
l = i;
}
}
if(ans == inf)
printf("disjoint\n");
else
printf("%d %d\n",l,ans);
}
return 0;
}
相关文章推荐
- 创建外键的前提
- 创建外键的前提
- 20、线程初相识
- 【数据结构】优先队列,堆
- 如何不安装opencvManager运行opencv软件(不是那种简单的jni方式)
- 再谈网游同步技术
- 使用VideoView实现视频轮番播放
- mysql权限设置
- mysql权限设置
- 微盘、快盘倒下之后,拿什么拯救你我的云存储
- 类成员函数
- 影子跟随算法
- Eclipse/MyEclipse中使用EGit为Commit打上tag标签
- Office WPS PPT 修改状态栏主题名称
- Maven基础-默认中央仓库---学习笔记
- 使用php在页面输出时,动态加载合并压缩js
- [HDOJ2639]Bone Collector II(第k优01背包)
- BlueDroid介绍
- cookie和session
- cookie和session