zoukankan      html  css  js  c++  java
  • kuangbin专题专题四 MPI Maelstrom POJ

     

    题目链接:https://vjudge.net/problem/POJ-1502

    dijkstra板子题,题目提供下三角情况,不包含正对角线,因为有题意都为0,处理好输入,就是一个很水的题。


     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <cstdio>
     5 #include <string>
     6 #include <vector>
     7 using namespace std;
     8  
     9 typedef long long LL;
    10 #define inf (1LL << 30) - 1
    11 #define rep(i,j,k) for(int i = (j); i <= (k); i++)
    12 #define rep__(i,j,k) for(int i = (j); i < (k); i++)
    13 #define per(i,j,k) for(int i = (j); i >= (k); i--)
    14 #define per__(i,j,k) for(int i = (j); i > (k); i--)
    15 
    16 const int N = 110;
    17 vector<pair<int,int> > G[N];
    18 int val[N];
    19 int vis[N];
    20 int n;
    21 
    22 int fun(string& x){
    23     int sum = 0;
    24 
    25     rep__(i,0,(int)x.length()) sum = sum * 10 + (x[i] - '0');
    26 
    27     return sum;
    28 }
    29 
    30 void input(){
    31 
    32     string w;
    33     rep(i,2,n){
    34         rep__(j,1,i){
    35             cin >> w;
    36 
    37             if(w[0] == 'x') continue;
    38             int W = fun(w);
    39             G[i].push_back(make_pair(j,W));
    40             G[j].push_back(make_pair(i,W));
    41         }
    42     }
    43 }
    44 
    45 int dijkstra(){
    46 
    47     if(n == 1) return 0;
    48     val[1] = 0;
    49     rep(i,2,n) val[i] = inf;
    50     
    51     rep__(i,0,(int)G[1].size()) val[G[1][i].first] = G[1][i].second;
    52     vis[1] = true;
    53 
    54     rep(i,2,n){
    55 
    56         int x = -1;
    57         int v = inf;
    58 
    59         rep(j,1,n){
    60             if(!vis[j] && v > val[j]) v = val[x = j];
    61         }
    62 
    63         if(x == -1) continue;
    64         vis[x] = true;
    65 
    66         rep__(o,0,(int)G[x].size()){
    67             int v = G[x][o].first;
    68             int w = G[x][o].second;
    69             if(!vis[v] && val[v] > val[x] + w)
    70                 val[v] = val[x] + w;
    71         }
    72     }
    73 
    74     int ans = 0;
    75     rep(i,2,n) ans = max(ans, val[i]);
    76 
    77     return ans;
    78 }
    79 
    80 int main(){
    81  
    82     ios::sync_with_stdio(false);
    83     cin.tie(0);
    84 
    85     cin >> n;
    86     input();
    87     cout << dijkstra() << endl;
    88 
    89     getchar();getchar();
    90     return 0;
    91 }
  • 相关阅读:
    SpringBoot初识日志
    SpringBoot配置文件(2)
    SpringBoot配置文件(1)
    java8新特性之stream流
    java8新特性之Lambda表达式
    Java入门——第一个Java程序HelloWorld(Dos命令窗口)
    Invalid bound statement (not found): com.xxx.xxx.dao.ShopMapper.insertShop
    2019总结过去,规划未来
    进程和线程的区别
    python(tuple元组、scalar types:数字类型、字符类型、类型转换)
  • 原文地址:https://www.cnblogs.com/SSummerZzz/p/11219913.html
Copyright © 2011-2022 走看看