题解:

有N个股票经济人能够互相传递消息。他们之间存在一些单向的通信路径。如今有一个消息要由某个人開始传递给其它全部人。问应该由哪一个人来传递,才干在最短时间内让全部人都接收到消息。

显然,用Floyd算法,然后选出每一个点到其它点的最长距离其中的最短距离。

/** \brief poj 1125 Floyd
*
* \param date 2014/7/31
* \param state AC
* \return memory 756k time 0ms
*
*/ #include <iostream>
#include <fstream>
#include <cstring> using namespace std; const int MAXN=101;
int DistMap[MAXN][MAXN];
int n;
const int INF=20;
//int best;
//int num; //bool Floyd()
void Floyd()
{
for(int k=1;k<=n;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i!=j && DistMap[i][j]>DistMap[i][k]+DistMap[k][j])
DistMap[i][j]=DistMap[i][k]+DistMap[k][j];
}
}
}
//
int maxlength, min_in_max=INF,flag_source;
for(int i=1;i<=n;i++)//以i点作为各通路源点
{
maxlength=0;
for(int j=1;j<=n;j++)
{
if(i!=j && DistMap[i][j]>maxlength)//寻找i到j的最长路径
{
maxlength=DistMap[i][j];
}
}
if(min_in_max>maxlength)
{
min_in_max=maxlength;//寻找最长路径中的最短路
flag_source=i;
}
} /*Output*/
if(min_in_max<INF)
cout<<flag_source<<' '<<min_in_max<<endl;
else
cout<<"disjoint"<<endl;
} int main()
{
//cout << "Hello world!" << endl;
//freopen("input.txt","r",stdin);
while(scanf("%d",&n)!=EOF)
{
memset(DistMap,INF,sizeof(DistMap));
if(n==0)break;
int num,v,w;
for(int i=1;i<=n;i++)
{
cin>>num;
for(int j=0;j<num;j++)
{
//DistMap[][]
scanf("%d%d",&v,&w);
DistMap[i][v]=w;
}
}
//Floyd
//if(Floyd()==false)
// cout<<"disjoint"<<endl;
//else cout<<num<<" "<<best<<endl;
Floyd();
}
return 0;
}

最新文章

  1. chattr无法删除某个文件
  2. 我与solr(三)--solr后台相关介绍
  3. JQuery EasyUI validatebox(验证框)
  4. json学习小记
  5. .NET破解之100%营销QQ辅助软件【更新】
  6. RAC 安装完成后 节点间通信不依赖于SSH
  7. java利用反射调用类的某个方法
  8. 程序集引用异常 处理 app.config内控制runtime运行时应用的程序集版本指向 assemblyBinding结点 bindingRedirect
  9. How to fix Column &#39;InvariantName&#39; is constrained to be unique 解决办法!
  10. CA认证和颁发吊销证书
  11. Linux下select的用法--实现一个简单的回射服务器程序
  12. python的加、减、乘、除、取整、取余计算
  13. Shell中判断语句if中-z至-d的意思
  14. TCP/IP协议(一)网络基础知识 网络七层协议
  15. C++ 提取网页内容系列之二
  16. Matlab 随机数字
  17. mysql中innodb和myisam的区别
  18. DCDC纹波小实验
  19. 【UVALive】2965 Jurassic Remains(中途相遇法)
  20. 用C#连接SFTP服务器并进行上传下载文件

热门文章

  1. iOS-通信录
  2. spring-boot项目MapperScan注解包含多个包
  3. 模型表单ModleForm
  4. js 打印二维码
  5. javaweb学习总结(十五)——JSP基础语法(转)
  6. vue2 父子组件间通信
  7. vue.js源码学习分享(六)
  8. 46深入理解C指针之---内存分析
  9. 31深入理解C指针之---指针和字符串
  10. centos 7安装golang1.10