QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#557902 | #9254. Random Variables | Mysterious_Cat | WA | 2ms | 8200kb | C++14 | 951b | 2024-09-11 12:06:47 | 2024-09-11 12:06:48 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
int T, mod, n, m, ans, C[N][N], f[N][N], g[N];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> T >> mod;
C[0][0] = 1;
for (int i = 1; i <= 1000; i++) {
C[i][0] = 1;
for (int j = 1; j <= i; j++) {
C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;
}
}
while (T--) {
cin >> n >> m;
for (int k = 1; k <= n; k++) {
int lim = n / (k + 1);
int bottom = max(m - lim, 1);
for (int j = 0; j <= m - bottom; j++) {
f[0][j] = 1;
for (int i = 1; i <= n; i++) {
f[i][j] = (1ll * f[i - 1][j] * (j + bottom) % mod - (i > k && j ? 1ll * f[i - k - 1][j - 1] * C[i - 1][k] % mod * (j + bottom) % mod : 0) + mod) % mod;
}
}
g[k] = f[n][m - bottom];
}
ans = 0;
for (int k = 1; k <= n; k++) {
ans = (ans + 1ll * k * (g[k] - g[k - 1] + mod) % mod) % mod;
}
cout << ans << '\n';
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 8200kb
input:
3 123456789 3 2 5 5 7 7
output:
18 7145 2066323
result:
ok 3 lines
Test #2:
score: -100
Wrong Answer
time: 2ms
memory: 7828kb
input:
100 2 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
result:
wrong answer 11th lines differ - expected: '0', found: '1'