【floyd 多源最短路】 poj 1125

#include <stdio.h>
#include <iostream>
#include <memory.h>
using namespace std;
int stb[102][102];
//int min(int x,int y)
//{
// return x<y?x:y;
//}
void Floyd(int n)
{
      int i,j,k;
   for(k=1;k<=n;k++)
    for(i=1;i<=n;i++)
     for(j=1;j<=n;j++)
      stb[i][j]=min(stb[i][j],stb[i][k]+stb[k][j]);
}
int main()
{
// freopen("in.txt","r",stdin);
 int i,j;
 int num,num1,n,dis;
 int line,ansmix,linemax;
 while(1)
 {
  scanf("%d",&num);
  if(num==0)
   break;
  for(i=1;i<=num;i++)
   for(j=1;j<=num;j++)
    stb[i][j]=1000010;
  for(i=1;i<=num;i++)
  {
   scanf("%d",&num1);
        stb[i][i]=0;
    for(j=0;j<num1;j++)
    {
     scanf("%d %d",&n,&dis);
     stb[i][n]=dis;
    }
  }
  Floyd(num);
  ansmix=1000010;
  for(i=1;i<=num;i++)
  {
   linemax=0;
   for(j=1;j<=num;j++)
   {
               if(stb[i][j]>linemax)
      {
       linemax=stb[i][j];
      }
   }
   if(linemax<ansmix)
   {
    ansmix=linemax;
       line=i;
   }
  }
  if(ansmix==1000010)
   printf("disjoint\n");
  else
   printf("%d %d\n",line,ansmix);
    }
    return 0;
}
时间: 2025-01-17 15:49:28

【floyd 多源最短路】 poj 1125的相关文章

hihocoder1081(Floyd全源最短路)

题目连接:点击打开链接 解题思路: 全源最短路Floyd算法,初始化时对角线为0,其余位置为无穷远. 完整代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int n , m; const int maxn = 1111; int g[maxn][maxn]; const int INF = 10000000

poj 1125 Stockbroker Grapevine -- floyd 全源最短路

Stockbroker Grapevine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 33164   Accepted: 18259 Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst th

最短路poj 1125

题目:poj1125Stockbroker Grapevine 题意:此题题意远比题目难 首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1<=i<=N)个经纪人与其他经纪人的关系(教你如何画图).每行开头数字M为该行对应的经纪人有多少个经纪人朋友(该节点的出度,可以为0),然后紧接着M对整数,每对整数表示成a,b,则表明该经纪人向第a个经纪人传递信息需要b单位时间(即第i号结点到第a号结点的孤长为b),整张图为有向图,即弧

六度分离 Floyd多源最短路

六度分离 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人,即只用6个人就可以将他们联系在一起,因此他的理论也被称为“六度分离”理论(six degrees of separation).虽然米尔格兰姆的理论屡屡应验,一直也有很多社会学家对其兴趣浓厚,但是在30多年的时间里,它从来就没有得到过严谨的证明,只是一种带有传奇色彩的假说而已. Lele对这个理论相当

多源最短路

Stockbroker Grapevine http://poj.org/problem?id=1125 模板题 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 const int inf=0x3f3f3ff; 5 const int M=128; 6 class Floyd{///多源最短路o(MV^3) 7 typedef int typec;///边权的类型 8 static const in

poj 1125 Stockbroker Grapevine(多源最短路)

链接:poj 1125 题意:输入n个经纪人,以及他们之间传播谣言所需的时间, 问从哪个人开始传播使得所有人知道所需时间最少,这个最少时间是多少 分析:因为谣言传播是同时的,对于某条路径使得所有人都知道的时间,不是时间的总和,而是路径中最长的边 从多条路径的最长边,找出最小值,因为为多源最短路,用Floyd比较方便 #include<stdio.h> #include<limits.h> int a[105][105]; void floyd(int n) { int i,j,k,

poj 1125 Stockbroker Grapevine(多源最短)

id=1125">链接:poj 1125 题意:输入n个经纪人,以及他们之间传播谣言所需的时间, 问从哪个人開始传播使得全部人知道所需时间最少.这个最少时间是多少 分析:由于谣言传播是同一时候的,对于某条路径使得全部人都知道的时间.不是时间的总和,而是路径中最长的边 从多条路径的最长边,找出最小值.由于为多源最短路,用Floyd比較方便 #include<stdio.h> #include<limits.h> int a[105][105]; void floyd(

POJ2263&amp;ZOJ1952--Heavy Cargo【Floyd】多源最短路变形

链接:http://poj.org/problem?id=2263 题意:有n个点,m条路,每条路双向的,现在卡车从某点到另一点,卡车的承载无上限,但是马路的承载有上限,问卡车应该承载多少才不会压坏马路. poj2253和它类似,链接:http://poj.org/problem?id=2253 解题报告:Here 就是在两点之间找一条路径,使路径中权值最小的那条边的权值最大,edge数组记录当前路径中最小权值边的权值 #include<cstring> #include<string&

POJ1125 Stockbroker Grapevine 多源最短路 Floyd

Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge in the stock market. For maximum effect, you have to