• 最短路(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 }
    编译人生,运行世界!
  • 相关阅读:
    Python中Linux开发的常识
    Python GUI编程(Tkinter)
    linux文本编辑器教学
    WordCloud安装
    怎么安装wordcloud
    java内功 ---- jvm虚拟机原理总结,侧重于GC
    spring源码分析(二)Aop
    spring源码分析(一)IoC、DI
    java内部类技术提炼
    java自定义注解实现前后台参数校验
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4372619.html
Copyright © 2020-2023  润新知