zoukankan      html  css  js  c++  java
  • HDU 1596 也是最小路径Dijkstra

     1 #include<cstdio>
     2 #include<cmath>
     3 #include<cstring>
     4 const int qq=1000+10;
     5 double dist[qq];
     6 double city[qq][qq];
     7 int vis[qq];
     8 int n,m;
     9 int s,e;
    10 void Dijkstra()
    11 {
    12     double MAX;
    13     int u;
    14     for(int i=1;i<=n;++i){
    15         vis[i]=0;
    16         dist[i]=city[s][i];
    17     }
    18     vis[s]=1;
    19     for(int l=2;l<=n;++l){
    20         MAX=0;u=s;
    21         for(int i=1;i<=n;++i)
    22             if(!vis[i] && dist[i] > MAX)
    23                 MAX = dist[u=i];
    24         if(MAX==0)    break;
    25         if(u==e)    break;
    26         vis[u]=1;
    27         for(int i=1;i<=n;++i)
    28             if(!vis[i]){
    29                 if(dist[i]<dist[u]*city[u][i])
    30                     dist[i]=dist[u]*city[u][i];
    31                 if(dist[i]<dist[u]*city[i][u])
    32                     dist[i]=dist[u]*city[u][i];
    33             }
    34 
    35     }
    36     if(u!=e)    printf("What a pity!
    ");
    37     else            printf("%.3lf
    ",dist[e]);
    38 }
    39 int main()
    40 {
    41     while(~scanf("%d",&n)){
    42         for(int j,i=1;i<=n;++i)    
    43             for(j=1;j<=n;++j)
    44                 scanf("%lf",&city[i][j]);
    45         scanf("%d",&m);
    46         for(int i=0;i<m;++i){
    47             scanf("%d %d",&s,&e);
    48             Dijkstra();
    49         }
    50     }
    51 } 

    将原来的+换成*就行了、模板懂了这题就是水题了

  • 相关阅读:
    OI 知识总览 算法篇 之 动态规划
    LeetCode 16.3Sum Closest
    LeetCode 1.Two sum
    leetCode 15. 3Sum
    leetCode 54. Spiral Matrix
    mybatis(视频)
    mybatis
    spring笔记
    Spring(一)
    Spring(二)
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5225858.html
Copyright © 2011-2022 走看看