QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#488075 | #8905. Ультра mex | PorNPtree | 0 | 210ms | 4608kb | C++17 | 1.9kb | 2024-07-23 16:02:07 | 2024-07-23 16:02:09 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 11;
int P, fac[(1 << N) + 5], iFac[(1 << N) + 5], f[N + 1][N + 1][1 << N], g[N + 1][N + 1][1 << N];
int C(int x, int y) {
return 1ll * fac[x] * iFac[y] % P * iFac[x - y] % P;
}
void preCalc() {
for (int i = fac[0] = iFac[0] = 1; i <= (1 << N); ++i) {
fac[i] = 1ll * fac[i - 1] * i % P;
iFac[i] = (i == 1 ? 1 : 1ll * (P - P / i) * iFac[P % i] % P);
}
for (int i = 1; i <= (1 << N); ++i) {
iFac[i] = 1ll * iFac[i - 1] * iFac[i] % P;
}
for (int o = 0; o <= N; ++o) {
if (o != N) {
for (int i = 0; i <= (1 << o) - 1 - (!!o); ++i) {
f[o][o + 1][i + (1 << o)] = g[o][o + 1][i + (1 << o)] = C((1 << o) - 1 - (!!o), i);
}
}
for (int i = o + 1; i <= N; ++i) {
for (int j = (1 << o); j < (1 << (i - 1)); ++j) {
for (int k = 0; k <= (1 << (i - 1)); ++k) {
f[o][i][j + k] = (f[o][i][j + k] + 1ll * f[o][i - 1][j] * C((1 << (i - 1)), k)) % P;
if (k != (1 << (i - 1))) g[o][i][j + k] = (g[o][i][j + k] + 1ll * f[o][i - 1][j] * C((1 << (i - 1)) - 1, k)) % P;
}
}
for (int j = 1; j < (1 << (i - 1)); ++j) {
f[o][i][j + (1 << (i - 1))] = (0ll + f[o][i][j + (1 << (i - 1))] + f[o][i - 1][j] + g[o][i - 1][j]) % P;
g[o][i][j + (1 << (i - 1))] = (g[o][i][j + (1 << (i - 1))] + g[o][i - 1][j]) % P;
}
}
}
}
signed main() {
scanf("%d", &P);
preCalc();
int T; scanf("%d", &T);
while (T--) {
int k, n, p; scanf("%d%d%d", &k, &n, &p);
int z = 0;
while ((1 << z) < p) ++z;
if ((1 << z) != p) {
puts("0");
continue;
}
printf("%d\n", f[z][k][n]);
}
return 0;
}
详细
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 210ms
memory: 4608kb
input:
118751233 10 1 2 2 1 2 1 1 2 2 1 2 2 1 2 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2
output:
0 0 0 0 0 1 0 1 1 0
result:
wrong answer 1st numbers differ - expected: '1', found: '0'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%
Subtask #3:
score: 0
Skipped
Dependency #1:
0%
Subtask #4:
score: 0
Skipped
Dependency #1:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #1:
0%
Subtask #7:
score: 0
Skipped
Dependency #1:
0%
Subtask #8:
score: 0
Skipped
Dependency #1:
0%
Subtask #9:
score: 0
Skipped
Dependency #1:
0%
Subtask #10:
score: 0
Skipped
Dependency #1:
0%
Subtask #11:
score: 0
Skipped
Dependency #1:
0%
Subtask #12:
score: 0
Skipped
Dependency #1:
0%
Subtask #13:
score: 0
Skipped
Dependency #1:
0%
Subtask #14:
score: 0
Skipped
Dependency #1:
0%
Subtask #15:
score: 0
Skipped
Dependency #1:
0%
Subtask #16:
score: 0
Skipped
Dependency #1:
0%
Subtask #17:
score: 0
Skipped
Dependency #1:
0%
Subtask #18:
score: 0
Skipped
Dependency #1:
0%
Subtask #19:
score: 0
Skipped
Dependency #1:
0%
Subtask #20:
score: 0
Skipped
Dependency #1:
0%
Subtask #21:
score: 0
Skipped
Dependency #1:
0%
Subtask #22:
score: 0
Skipped
Dependency #1:
0%
Subtask #23:
score: 0
Skipped
Dependency #1:
0%
Subtask #24:
score: 0
Skipped
Dependency #1:
0%
Subtask #25:
score: 0
Skipped
Dependency #1:
0%
Subtask #26:
score: 0
Skipped
Dependency #1:
0%
Subtask #27:
score: 0
Skipped
Dependency #1:
0%
Subtask #28:
score: 0
Skipped
Dependency #1:
0%
Subtask #29:
score: 0
Skipped
Dependency #1:
0%
Subtask #30:
score: 0
Skipped
Dependency #1:
0%