zoukankan      html  css  js  c++  java
  • 杭电1596 find the safest road

    find the safest road

    Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 6380    Accepted Submission(s): 2271


    Problem Description
    XX星球有非常多城市,每一个城市之间有一条或多条飞行通道,可是并非全部的路都是非常安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包含0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,如今8600 想出去旅游。面对这这么多的路,他想找一条最安全的路。

    可是8600 的数学不好,想请你帮忙 ^_^


    Input
    输入包含多个測试实例。每一个实例包含:
    第一行:n。

    n表示城市的个数n<=1000;
    接着是一个n*n的矩阵表示两个城市之间的安全系数,(0能够理解为那两个城市之间没有直接的通道)
    接着是Q个8600要旅游的路线,每行有两个数字,表示8600所在的城市和要去的城市


    Output
    假设86无法达到他的目的地,输出"What a pity!",
    其它的输出这两个城市之间的最安全道路的安全系数,保留三位小数。

    Sample Input
    3 1 0.5 0.5 0.5 1 0.4 0.5 0.4 1 3 1 2 2 3 1 3

    Sample Output
    0.500
    0.400
    0.500

    这道题是用的floyd做的。也属于最短路中的一种方法

    代码:

    #include<stdio.h>
    #include<string.h>
    #define INF 1 << 30
    double map[1001][1001] ;
    void floyd(int n)
    {
     for(int k = 1 ; k <= n ; k++)
      for(int i = 1 ; i <= n ; i++)
       for(int j = 1 ; j <= n ; j++)
        if(map[i][j] < map[i][k] * map[k][j])
         map[i][j] = map[i][k] * map[k][j] ;
    }
    int main()
    {
     int n = 0 ;
     while(~scanf("%d" , &n) && n )
     {
      int i  = 0 , j = 0 ;
            memset(map , 0 , sizeof( map ) ) ;
      for( i = 1 ; i <= n ; i++)
      {
       for( j = 1 ; j <= n ; j++)
       {
        scanf("%lf",&map[i][j]);
       }
      }
      int Q =  0 ;
      scanf("%d",&Q);
      floyd( n ) ;
      while( Q-- && n)
      {
       int x , y ;
                scanf("%d%d" , &x , &y);
       if(map[x][y])
          printf("%.3lf ", map[x][y]) ;
       else
        printf("What a pity! ") ;
      }
     }
     return 0 ;
    }

  • 相关阅读:
    模板 无源汇上下界可行流 loj115
    ICPC2018JiaozuoE Resistors in Parallel 高精度 数论
    hdu 2255 奔小康赚大钱 最佳匹配 KM算法
    ICPC2018Beijing 现场赛D Frog and Portal 构造
    codeforce 1175E Minimal Segment Cover ST表 倍增思想
    ICPC2018Jiaozuo 现场赛H Can You Solve the Harder Problem? 后缀数组 树上差分 ST表 口胡题解
    luogu P1966 火柴排队 树状数组 逆序对 离散化
    luogu P1970 花匠 贪心
    luogu P1967 货车运输 最大生成树 倍增LCA
    luogu P1315 观光公交 贪心
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/7050669.html
Copyright © 2011-2022 走看看