zoukankan      html  css  js  c++  java
  • poj 3615(floyd变形 水题)

    题意:求两点之间的所有路径中的最高点最低的路径的最高点。例如 

    1-> 2 12
    3-> 2 8
    1-> 3 5
    则输出8。
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 
     6 using namespace std;
     7 #define MAX(x,y) ((x)>(y)?(x):(y))
     8 #define MIN(x,y) ((x)>(y)?(y):(x))
     9 #define inf 0x7fffffff
    10 #define MAXN 305
    11 #define MAXM 25010
    12 
    13 int N,M,T;
    14 int dis[MAXN][MAXN];
    15 
    16 void floyd()
    17 {
    18     for(int k=1;k<=N;k++)
    19         for(int i=1;i<=N;i++)
    20             for(int j=1;j<=N;j++)
    21                 dis[i][j]=MIN(dis[i][j],MAX(dis[i][k],dis[k][j]));
    22 }
    23 
    24 int main()
    25 {
    26     int s,e,h;
    27     while(scanf("%d%d%d",&N,&M,&T) != EOF)
    28     {
    29         for(int i=1;i<=N;i++)
    30             for(int j=1;j<=N;j++)
    31                 if(i==j)
    32                     dis[i][j]=0;
    33                 else
    34                     dis[i][j]=inf;
    35         while(M--)
    36         {
    37             scanf("%d%d%d",&s,&e,&h);
    38             dis[s][e]=h;
    39         }
    40         floyd();
    41         while(T--)
    42         {
    43             scanf("%d%d",&s,&e);
    44             if(dis[s][e]==inf)
    45                 printf("-1\n");
    46             else
    47                 printf("%d\n",dis[s][e]);
    48         }
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    UITableView
    xib的读取方式
    远程登录树莓派
    来体验下Linux吧
    树莓派了解Linux基本命令
    来感受Linux命令行的“真香定律”
    初尝树莓派
    从入手树莓派开始
    08-java学习笔记-集合框架中的工具类
    07-java学习笔记-map集合
  • 原文地址:https://www.cnblogs.com/Missa/p/2663771.html
Copyright © 2011-2022 走看看