kuangbin专题专题四 MPI Maelstrom POJ - 1502

Posted ssummerzzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kuangbin专题专题四 MPI Maelstrom POJ - 1502相关的知识,希望对你有一定的参考价值。

 

题目链接: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 

 

以上是关于kuangbin专题专题四 MPI Maelstrom POJ - 1502的主要内容,如果未能解决你的问题,请参考以下文章

kuangbin专题专题四 Til the Cows Come Home POJ - 2387

[kuangbin带你飞]专题四 最短路练习 E - Currency Exchange

[kuangbin带你飞]专题四 最短路练习 I - Arbitrage(判断负环)

kuangbin专题四 最短路练习从入门到熟练

[kuangbin带你飞]专题四 最短路练习 POJ 2253 Frogger

[kuangbin]带你飞之'最短路练习'专题(未完成)