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

  1. Floyd求最短路
更多...

函数

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

详细描述

  1. Floyd求最短路

函数说明

◆ main()

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

在文件 acwing.cpp7341 行定义.

7341 {
7342 int n;
7343 int m;
7344 int k;
7345 cin >> n >> m >> k;
7346 vector g(n + 1, vector<int>(n + 1, 1e9));
7347 for(int i = 0; i < m; i++) {
7348 int x;
7349 int y;
7350 int z;
7351 cin >> x >> y >> z;
7352 g[x][y] = min(g[x][y], z);
7353 }
7354 for(int i = 1; i <= n; i++) {
7355 g[i][i] = 0;
7356 }
7357 for(int l = 1; l <= n; l++) {
7358 for(int i = 1; i <= n; i++) {
7359 for(int j = 1; j <= n; j++) {
7360 g[i][j] = min(g[i][j], g[i][l] + g[l][j]);
7361 }
7362 }
7363 }
7364 for(int i = 0; i < k; i++) {
7365 int x;
7366 int y;
7367 cin >> x >> y;
7368 if(g[x][y] > 1e9 / 2) {
7369 cout << "impossible" << endl;
7370 } else {
7371 cout << g[x][y] << endl;
7372 }
7373 }
7374 return 0;
7375 }

被这些函数引用 TEST().

◆ TEST() [1/2]

acwing::acwing854::TEST ( acwing854  ,
case1   
)

在文件 acwing_test.cpp3437 行定义.

3437 {
3438 istringstream in("3 3 2\n"
3439 "1 2 1\n"
3440 "2 3 2\n"
3441 "1 3 1\n"
3442 "2 1\n"
3443 "1 3\n");
3444 auto out = ostringstream();
3445 main(in, out);
3446 const auto ans = out.str();
3447 ASSERT_EQ("impossible\n"
3448 "1\n",
3449 ans);
3450 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing854::TEST ( acwing854  ,
case2   
)

在文件 acwing_test.cpp3452 行定义.

3452 {
3453 istringstream in("10 20 10\n"
3454 "1 2 6\n"
3455 "4 9 5\n"
3456 "10 3 10\n"
3457 "10 4 5\n"
3458 "1 4 10\n"
3459 "1 10 0\n"
3460 "9 7 8\n"
3461 "1 5 8\n"
3462 "4 4 9\n"
3463 "10 4 4\n"
3464 "4 7 6\n"
3465 "9 1 10\n"
3466 "6 8 -3\n"
3467 "2 3 10\n"
3468 "2 8 1\n"
3469 "7 6 6\n"
3470 "4 4 5\n"
3471 "8 9 8\n"
3472 "6 1 8\n"
3473 "6 8 7\n"
3474 "7 4\n"
3475 "2 10\n"
3476 "4 4\n"
3477 "4 1\n"
3478 "8 3\n"
3479 "3 7\n"
3480 "10 9\n"
3481 "3 10\n"
3482 "6 10\n"
3483 "9 5\n");
3484 auto out = ostringstream();
3485 main(in, out);
3486 const auto ans = out.str();
3487 ASSERT_EQ("18\n"
3488 "19\n"
3489 "0\n"
3490 "15\n"
3491 "28\n"
3492 "impossible\n"
3493 "9\n"
3494 "impossible\n"
3495 "8\n"
3496 "18\n",
3497 ans);
3498 }

引用了 main().