poj 1125

原创 2015年11月19日 12:16:04

题目大意:(我就不翻译原来的题目)大概讲的是这么个东西。

给出几个点以及点到其他点的单向边。现在假设有一个消息要传给所有人,我们认为每个点到其他点传递消息的时间为边的长度。现在所求的是:从那个点出发所需的时间最少,并且求出这个最小值。


还是最短路径问题:求出每个点到其他点的最短路径(floyd算法),之后枚举每个点,求出这个点要把消息传遍的最长的时间,找出时间最短的点,很简单。


#include <iostream>
#include <cstring>
#define N 700
using namespace std;
int dis[N][N];
int n,m;

int main()
{
	while(1)
	{
		cin>>n;
		if(n==0)break;
		for (int i=0;i<N;++i)
		  for (int j=0;j<N;++j)
		    dis[i][j]=99999999;  
		    
		for (int i=1;i<=n;++i)
	    {
	    	cin>>m;
	    	int v=0,d;
	    	for (int j=1;j<=m;++j)
	    	{
	    		cin>>v>>d;
	    		dis[i][v]=d;
			}
			dis[i][i]=0;
		}
		
		for (int i=1;i<=n;++i)
		  for (int j=1;j<=n;++j)
		    for (int k=1;k<=n;++k)           //Floyd
		    dis[i][k]=min( dis[i][j]+dis[j][k] , dis[i][k]);
		    
		int ans=99999999+1,k=-1;
		for (int i=1;i<=n;++i)
		{
			int cnt=0;
			for (int j=1;j<=n;++j)
				cnt=max(dis[i][j],cnt);   //枚举点求最小 
			if(cnt<ans)
			{
				ans=cnt;
				k=i;
			}
		}
		cout<<k<<' '<<ans<<endl;		
	}
		
}

这是第一次,第一次直接ac的题目!!!!

当然我发现自己floyd写得不是很顺,三个循环把自己搞晕了。


for (int k=0;k<n;++k)  

   for (int i=0;i<n;++i)  

      for (int j=0;j<n;++j)

         d[i][j]=min(d[i][k]+d[k][j],d[i][j]); 

//从第i个点到第j个点以k为中间点所需的最短距离

//第一个循环枚举的是中间点

//第二个循环枚举的是当前中间点下的起始点

//第三个循环美剧的是目标。

仔细想想为什么不能换。



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

poj1125yuanmayuamn

POJ1125Floyd-warshall算法模板题

//题意求出一个Num人并给出该人传递信息到最后一个收到该信息的的时间 //floyd算法模板题 //204K 0MS #include using namespace std; #define ...

poj1125原创AC代码

POJ 1125-Stockbroker Grapevine(floyd)

E - Stockbroker Grapevine Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d ...

POJ 1125 Stockbroker Grapevine Floyd算法

//  Floyd算法 #include #include #include int map[102][102]; int mx[102]; int main() { int n; w...

POJ 1125 Stockbroker Grapevine (Floyd算法)

Floyd算法解决

POJ 1125 - Stockbroker Grapevine

Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a m...

zoj 1082 && poj 1125 && 南阳oj 426 Stockbroker Grapevine

题意:选定一个经纪人散步传闻,计算所有经纪人都收到这个过程的最少时间。 思路:求解n次单源最短路径,取单源最短路径中的最大值,使最大值最小。 poj上的数据很水,南阳oj的数据有所加强 http:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)