problemscpp
A collection of my answers to algorithm problems in c++.
| 函数
acwing::acwing849 命名空间参考

  1. Dijkstra求最短路 I
更多...

struct  comp
 

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing849, case1)
 
 TEST (acwing849, case2)
 

详细描述

  1. Dijkstra求最短路 I

函数说明

◆ main()

int acwing::acwing849::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing.cpp7159 行定义.

7159 {
7160 int n;
7161 int m;
7162 cin >> n >> m;
7163 vector<unordered_map<int, int>> vec(n + 1);
7164 unordered_set<int> ed;
7165 for(int i = 0; i < m; i++) {
7166 int x;
7167 int y;
7168 int z;
7169 cin >> x >> y >> z;
7170 if(vec[x][y] == 0) {
7171 vec[x][y] = z;
7172 } else {
7173 vec[x][y] = min(vec[x][y], z);
7174 }
7175 }
7176 priority_queue<pair<int, int>, vector<pair<int, int>>, comp> pq;
7177 pq.push(make_pair(1, 0));
7178 while(!pq.empty()) {
7179 auto [node, dist] = pq.top();
7180 pq.pop();
7181 if(ed.contains(node)) {
7182 continue;
7183 }
7184 ed.insert(node);
7185 if(node == n) {
7186 cout << dist;
7187 return 0;
7188 }
7189 for(auto [next_node, d]: vec[node]) {
7190 if(!ed.contains(next_node)) {
7191 pq.push(make_pair(next_node, dist + d));
7192 }
7193 }
7194 }
7195 cout << -1;
7196 return 0;
7197 }
int vec[100010]
Definition: pat.cpp:5095

引用了 pat::a::a7_2::vec.

被这些函数引用 TEST().

◆ TEST() [1/2]

acwing::acwing849::TEST ( acwing849  ,
case1   
)

在文件 acwing_test.cpp3327 行定义.

3327 {
3328 istringstream in("3 3\n"
3329 "1 2 2\n"
3330 "2 3 1\n"
3331 "1 3 4");
3332 auto out = ostringstream();
3333 main(in, out);
3334 const auto ans = out.str();
3335 ASSERT_EQ("3", ans);
3336 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing849::TEST ( acwing849  ,
case2   
)

在文件 acwing_test.cpp3338 行定义.

3338 {
3339 istringstream in("5 10\n"
3340 "1 2 2\n"
3341 "5 3 3\n"
3342 "4 1 8\n"
3343 "2 4 3\n"
3344 "4 5 7\n"
3345 "5 2 3\n"
3346 "3 4 1\n"
3347 "1 2 9\n"
3348 "3 2 3\n"
3349 "1 2 8");
3350 auto out = ostringstream();
3351 main(in, out);
3352 const auto ans = out.str();
3353 ASSERT_EQ("12", ans);
3354 }

引用了 main().