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

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

函数

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

详细描述

  1. Floyd求最短路

函数说明

◆ main()

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

在文件 acwing408.cpp808 行定义.

808 {
809 int n, m, k;
810 cin >> n >> m >> k;
811 vector<vector<int>> g = vector<vector<int>>(n + 1, vector<int>(n + 1, INT_MAX));
812 for(int i = 1; i <= n; i++) {
813 g[i][i] = 0;
814 }
815 while(m--) {
816 int x, y, z;
817 cin >> x >> y >> z;
818 g[x][y] = min(g[x][y], z);
819 }
820 for(int k = 1; k <= n; k++) {
821 for(int i = 1; i <= n; i++) {
822 for(int j = 1; j <= n; j++) {
823 if(g[i][k] != INT_MAX && g[k][j] != INT_MAX) {
824 g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
825 }
826 }
827 }
828 }
829 while(k--) {
830 int x, y;
831 cin >> x >> y;
832 if(g[x][y] == INT_MAX) {
833 cout << "impossible" << endl;
834 } else {
835 cout << g[x][y] << endl;
836 }
837 }
838 return 0;
839 }

被这些函数引用 TEST().

◆ TEST()

acwing::acwing854_408::TEST ( acwing854_408  ,
case1   
)

在文件 acwing408_test.cpp1184 行定义.

1184 {
1185 istringstream in("3 3 2\n"
1186 "1 2 1\n"
1187 "2 3 2\n"
1188 "1 3 1\n"
1189 "2 1\n"
1190 "1 3");
1191 auto out = ostringstream();
1192 main(in, out);
1193 const auto ans = out.str();
1194 ASSERT_EQ("impossible\n"
1195 "1\n",
1196 ans);
1197 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().