QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#546623 | #8776. Not Another Constructive! | chengning0909 | RE | 2ms | 10236kb | C++14 | 1.7kb | 2024-09-04 10:18:37 | 2024-09-04 10:18:39 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using tpl = tuple<int, int, int, int>;
const int N = 45, M = 405, MAXK = 2510;
int n, k;
string s;
bitset<MAXK> dp[N][N][M];
tpl tp;
bool flag;
void print(tpl x) {
auto [i, j, t, p] = x;
if (!i) return ;
if ((s[i] == 'N' || s[i] == '?') && dp[i - 1][j - 1][t][p]) {
print({i - 1, j - 1, t, p}), cout << 'N';
} else if ((s[i] == 'A' || s[i] == '?') && dp[i - 1][j][t - j][p]) {
print({i - 1, j, t - j, p}), cout << 'A';
} else if ((s[i] == 'C' || s[i] == '?') && dp[i - 1][j][t][p - t]) {
print({i - 1, j, t, p - t}), cout << 'C';
} else if (s[i] != 'N' && s[i] != 'A' && s[i] != 'C' && dp[i - 1][j][t][p]) {
print({i - 1, j, t, p}), cout << (s[i] == '?' ? 'B' : s[i]);
}
}
int main() {
ios::sync_with_stdio(0), cin.tie(0);
cin >> n >> k >> s, s = ' ' + s;
dp[0][0][0][0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 0; j < i; j++) {
for (int t = 0; t <= (i - 1) * i / 4; t++) {
if (s[i] == 'N' || s[i] == '?') dp[i][j + 1][t] |= dp[i - 1][j][t];
if (s[i] == 'A' || s[i] == '?') if (t + j < M) dp[i][j][t + j] |= dp[i - 1][j][t];
if (s[i] == 'C' || s[i] == '?') dp[i][j][t] |= (dp[i - 1][j][t] << t);
if (s[i] != 'N' && s[i] != 'A' && s[i] != 'C') dp[i][j][t] |= dp[i - 1][j][t];
}
}
if (i == n) {
for (int j = 0; j <= i; j++) {
for (int t = 0; t <= (i + 1) * i / 4; t++) {
if (dp[i][j][t][k]) flag = 1, tp = {i, j, t, k};
}
}
}
}
if (!flag) cout << -1;
else print(tp);
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 10236kb
input:
22 2 N??A??????C???????????
output:
NCNANNNNNNCNNNNNNNNNNN
result:
ok correct
Test #2:
score: 0
Accepted
time: 2ms
memory: 6632kb
input:
18 0 COUNTINGSATELLITES
output:
COUNTINGSATELLITES
result:
ok correct
Test #3:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
2 1 ??
output:
-1
result:
ok correct
Test #4:
score: 0
Accepted
time: 0ms
memory: 3852kb
input:
1 0 ?
output:
N
result:
ok correct
Test #5:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
1 0 N
output:
N
result:
ok correct
Test #6:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
1 0 X
output:
X
result:
ok correct
Test #7:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
1 1 ?
output:
-1
result:
ok correct
Test #8:
score: 0
Accepted
time: 0ms
memory: 3528kb
input:
1 1 N
output:
-1
result:
ok correct
Test #9:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
1 1 X
output:
-1
result:
ok correct
Test #10:
score: 0
Accepted
time: 0ms
memory: 3564kb
input:
2 0 ??
output:
NN
result:
ok correct
Test #11:
score: 0
Accepted
time: 0ms
memory: 3444kb
input:
2 0 N?
output:
NN
result:
ok correct
Test #12:
score: 0
Accepted
time: 0ms
memory: 3504kb
input:
2 0 ?C
output:
NC
result:
ok correct
Test #13:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
2 1 N?
output:
-1
result:
ok correct
Test #14:
score: 0
Accepted
time: 0ms
memory: 3832kb
input:
2 1 ?C
output:
-1
result:
ok correct
Test #15:
score: 0
Accepted
time: 0ms
memory: 3652kb
input:
3 1 ???
output:
NAC
result:
ok correct
Test #16:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
3 1 N??
output:
NAC
result:
ok correct
Test #17:
score: 0
Accepted
time: 0ms
memory: 3572kb
input:
3 1 ?A?
output:
NAC
result:
ok correct
Test #18:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
3 1 ??C
output:
NAC
result:
ok correct
Test #19:
score: 0
Accepted
time: 0ms
memory: 3648kb
input:
3 1 NA?
output:
NAC
result:
ok correct
Test #20:
score: 0
Accepted
time: 0ms
memory: 3580kb
input:
3 1 N?C
output:
NAC
result:
ok correct
Test #21:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
3 1 ?AC
output:
NAC
result:
ok correct
Test #22:
score: 0
Accepted
time: 0ms
memory: 3600kb
input:
4 1 ????
output:
NACN
result:
ok correct
Test #23:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
4 1 X???
output:
XNAC
result:
ok correct
Test #24:
score: 0
Accepted
time: 0ms
memory: 3660kb
input:
4 1 ???Z
output:
NACZ
result:
ok correct
Test #25:
score: 0
Accepted
time: 0ms
memory: 3880kb
input:
4 1 ?AA?
output:
-1
result:
ok correct
Test #26:
score: 0
Accepted
time: 0ms
memory: 3656kb
input:
4 1 N???
output:
NACN
result:
ok correct
Test #27:
score: -100
Runtime Error
input:
4 1 ?N??