为什么还是re,我真的裂开了呀

P1358 扑克牌

第一个循环 $i$ 会爆 $dp$ 数组吧
by Problem1613end @ 2024-04-14 15:06:37


说错了,是爆 $b$ 。
by Problem1613end @ 2024-04-14 15:08:17


@[Problem1613end](/user/1281623) 哦哦哦,分不清了,m和n混淆了,感谢
by kaito_936 @ 2024-04-14 15:21:25


@[Problem1613end](/user/1281623) 还是wa了俩,6和10 ```cpp #include <iostream> using namespace std; int dp[101][10001], n, m, temp, sum, b[10001][101]; int main() { cin >> n >> m; for (int i = 0; i <= n; i++) { for (int j = 0; j <= i; j++) { if (j == 0) b[i][j] = 1; else if (j == i) b[i][j] = 1; else b[i][j] = b[i - 1][j - 1] + b[i - 1][j]; b[i][j]%=10007; } } for (int j = 0; j <= n; j++) dp[0][j] = 1; for (int i = 1; i <= m; i++) { cin >> temp; sum += temp; for (int j = 0; j <= n; j++) { if (j < sum) dp[i][j] = 0; else dp[i][j] = dp[i - 1][j] * b[j - sum + temp][temp]; dp[i][j] %= 10007; } } cout << dp[m][n] << endl; return 0; } ```
by kaito_936 @ 2024-04-14 15:33:29


@[Problem1613end](/user/1281623) 什么鬼啊,这明明b数组第二维爆了,它给我显示wa,不给我显示re。过了 ```cpp #include <iostream> using namespace std; long long dp[101][10001], n, m, temp, sum, b[10001][101]; int main() { cin >> n >> m; for (int i = 0; i <= n; i++) { for (int j = 0; j <= i&&j<101; j++) { if (j == 0) b[i][j] = 1; else if (j == i) b[i][j] = 1; else b[i][j] = b[i - 1][j - 1] + b[i - 1][j]; b[i][j]%=10007; } } for (int j = 0; j <= n; j++) dp[0][j] = 1; for (int i = 1; i <= m; i++) { cin >> temp; sum += temp; for (int j = 0; j <= n; j++) { if (j < sum) dp[i][j] = 0; else dp[i][j] = dp[i - 1][j] * b[j - sum + temp][temp]; dp[i][j] %= 10007; } } cout << dp[m][n] << endl; return 0; } ```
by kaito_936 @ 2024-04-14 15:45:52


|