zoukankan      html  css  js  c++  java
  • 最短路(Floyd_Warshall) POJ 1125 Stockbroker Grapevine

    题目传送门

     1 /*
     2     最短路:Floyd模板题
     3             主要是两点最短的距离和起始位置
     4     http://blog.csdn.net/y990041769/article/details/37955253
     5 */
     6 #include <cstdio>
     7 #include <iostream>
     8 #include <algorithm>
     9 #include <cmath>
    10 #include <cstring>
    11 #include <string>
    12 #include <vector>
    13 using namespace std;
    14 
    15 const int MAXN = 100 + 10;
    16 const int INF = 0x3f3f3f3f;
    17 int d[MAXN][MAXN];
    18 
    19 void Floyd_Warshall(int n)
    20 {
    21     for (int k=1; k<=n; ++k)
    22     {
    23         for (int i=1; i<=n; ++i)
    24         {
    25             for (int j=1; j<=n; ++j)
    26             {
    27                 if (d[i][j] > d[i][k] + d[k][j])
    28                     d[i][j] = d[i][k] + d[k][j];
    29             }
    30         }
    31     }
    32 }
    33 
    34 void work(int n)
    35 {
    36     Floyd_Warshall (n);
    37     int res;   int ans = INF;  int num;
    38     for (int i=1; i<=n; ++i)
    39     {
    40         res = 0;
    41         for (int j=1; j<=n; ++j)
    42         {
    43             if (i == j) continue;
    44             if (res < d[i][j])  res = d[i][j];
    45         }
    46         if (ans > res)
    47         {
    48             ans = res;
    49             num = i;
    50         }
    51     }
    52 
    53     printf ("%d %d
    ", num, ans);
    54 }
    55 
    56 int main(void)      //POJ 1125  Stockbroker Grapevine
    57 {
    58     //freopen ("E.in", "r", stdin);
    59 
    60     int n, m;
    61     while (~scanf ("%d", &n) && n)
    62     {
    63         for (int i=1; i<=n; ++i)
    64             for (int j=1; j<=n; ++j)    d[i][j] = INF;
    65         for (int i=1; i<=n; ++i)
    66         {
    67             scanf ("%d", &m);
    68             int x, y;
    69             for (int j=1; j<=m; ++j)
    70             {
    71                 scanf ("%d%d", &x, &y);
    72                 d[i][x] = y;
    73             }
    74         }
    75 
    76         work (n);
    77     }
    78 
    79     return 0;
    80 }
    编译人生,运行世界!
  • 相关阅读:
    Oracle优化器模式不同导致索引失效
    Python补零操作
    正则表达式
    python习题(二)
    Linux常见报错及解决方法(持续更新)
    总结(三)----2020上
    总结二
    总结---持更
    python多线程实现方式,最基础的实现方式模块是什么
    python2和python3区别
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4372619.html
Copyright © 2011-2022 走看看