求助大佬,只有四个点AC!

P1359 租用游艇

需要把所有不存在的边初始化为无穷大,因为它们在Floyd的枚举中会被用到,你这样写等于全部初始化为0,那min()最后就会比出来一堆0 顺便我帮你改了以下MAX_N,按你原来写那么大的话会MLE ```cpp #include <iostream> #include <cstring> #define MAX_N (200 + 10) using namespace std; int main() { int n; cin >> n; int rent[MAX_N][MAX_N]; memset(rent, 0x3f, sizeof(rent)); // 输入半矩阵 for (int i = 1; i <= n - 1; ++i) { for (int j = i + 1; j <= n; ++j) { cin >> rent[i][j]; } } // 弗洛伊德算法 for (int k = 1; k <= n; ++k) { for (int i = 1; i <= n; ++i) { for (int j = i + 1; j <= n; ++j) { rent[i][j] = min(rent[i][j], rent[i][k] + rent[k][j]); } } } /* for (int i = 1; i <= n; ++i) { for (int j = 1; j <= n; ++j) { cout << rent[i][j] << " "; if (j == n) cout << endl; } } */ // 输出结果 cout << rent[1][n] << endl; return 0; } ``````
by 杜都督 @ 2024-02-03 03:21:01


@[杜都督](/user/39279) 懂了懂了,谢谢佬?
by Shrimp123 @ 2024-02-03 11:57:55


@[Shrimp123](/user/1275384) 不用谢,顺便更正一下,你这个rent是局部变量,那么像原来那样不初始化的话所有的值就不一定0而是随机值
by 杜都督 @ 2024-02-03 12:18:38


@[杜都督](/user/39279) 那要是定义成全局变量就会全都自动初始化为0吗
by Shrimp123 @ 2024-02-05 16:48:10


@[Shrimp123](/user/1275384) 对
by 杜都督 @ 2024-02-05 18:59:33


|