zoukankan      html  css  js  c++  java
  • MPI Maelstrom(Dijkstra)

    http://poj.org/problem?id=1502

    刷一道模板题稳定一下心情。。。

    Dijkstra求单源最短路,就是输入的时候注意下,是按下三角输入的(无向图),输入字符x表示i与j不通。

    可以这样输入:

    if(scanf("%d",&w)) map[i][j] = map[j][i] = w;
    else scanf("x");

     1 #include<stdio.h>
     2 #include<string.h>
     3 const int INF = 0x3f3f3f3f;
     4 
     5 int map[110][110],vis[110],dis[110],n;
     6 void Dijkstra()
     7 {
     8     int i,j;
     9     memset(vis,0,sizeof(vis));
    10     for(i = 0; i < n; i++)
    11         dis[i] = INF;
    12     dis[0] = 0;
    13 
    14     for(i = 0; i < n; i++)
    15     {
    16         int mindis = INF,pos;
    17         for(j = 0; j < n; j++)
    18         {
    19             if(!vis[j] && dis[j] < mindis)
    20             {
    21                 mindis = dis[j];
    22                 pos = j;
    23             }
    24         }
    25         vis[pos] = 1;
    26         for(j = 0; j < n; j++)
    27         {
    28             if(!vis[j] && dis[j] > dis[pos]+map[pos][j])
    29                 dis[j] = dis[pos]+map[pos][j];
    30         }
    31     }
    32 
    33 }
    34 
    35 int main()
    36 {
    37     while(~scanf("%d",&n))
    38     {
    39         for(int i = 0; i < n; i++)
    40             for(int j = 0; j < n; j++)
    41                 map[i][j] = INF;
    42         for(int i = 1; i < n; i++)
    43         {
    44             for(int j = 0; j < i; j++)
    45             {
    46                 int w;
    47                 if(scanf("%d",&w)) map[i][j] = map[j][i] = w;
    48                 else scanf("x");
    49             }
    50         }
    51         Dijkstra();
    52         int max = -1;
    53         for(int i = 0; i < n; i++)
    54         {
    55             if(dis[i] > max)
    56                 max = dis[i];
    57         }
    58         printf("%d
    ",max);
    59     }
    60     return 0;
    61 }
    View Code
  • 相关阅读:
    bzoj3224
    [洛谷日报第62期]Splay简易教程 (转载)
    bzoj1588
    codeforces467C
    codeforces616B
    codeforces379C
    codeforces545C
    codeforces285C
    codeforces659C
    快读代码level.2
  • 原文地址:https://www.cnblogs.com/LK1994/p/3411158.html
Copyright © 2011-2022 走看看