提出 #54838113
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int N, K;
string S;
const ll mod = 998244353;
map<int, map<string, ll>> dp;
bool isPal(string& t) {
int L = 0, R = t.length() - 1;
while(L < R) {
if(t[L] != t[R]) return 0;
L++;
R--;
}
return 1;
}
ll f(int i, string t) {
if(i >= N) {
if(isPal(t)) return 0;
return 1;
}
if(dp.find(i) != dp.end() && dp[i].find(t) != dp[i].end()) {
return dp[i][t];
}
if(i >= K && isPal(t)) {
return dp[i][t] = 0;
}
ll ans = 0;
if(S[i] == '?') {
S[i] = 'A';
ans = (ans + f(i + 1, S.substr(max(0, i - K + 1), min(i + 1, K)))) % mod;
S[i] = 'B';
ans = (ans + f(i + 1, S.substr(max(0, i - K + 1), min(i + 1, K)))) % mod;
S[i] = '?';
} else {
ans = (ans + f(i + 1, S.substr(max(0, i - K + 1), min(i + 1, K)))) % mod;
}
return dp[i][t] = ans;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> N >> K;
cin >> S;
string t = "";
cout << f(0, t) << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Avoid K Palindrome |
| ユーザ | prathik8794 |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 450 |
| コード長 | 1079 Byte |
| 結果 | AC |
| 実行時間 | 508 ms |
| メモリ | 83156 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 450 / 450 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt, 01_random_56.txt, 01_random_57.txt, 01_random_58.txt, 01_random_59.txt, 01_random_60.txt, 01_random_61.txt, 01_random_62.txt, 01_random_63.txt, 01_random_64.txt, 01_random_65.txt, 01_random_66.txt, 01_random_67.txt, 01_random_68.txt, 01_random_69.txt, 01_random_70.txt, 01_random_71.txt, 01_random_72.txt, 01_random_73.txt, 01_random_74.txt, 01_random_75.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3484 KiB |
| 00_sample_01.txt | AC | 3 ms | 3852 KiB |
| 00_sample_02.txt | AC | 1 ms | 3428 KiB |
| 00_sample_03.txt | AC | 1 ms | 3472 KiB |
| 01_random_04.txt | AC | 504 ms | 83104 KiB |
| 01_random_05.txt | AC | 247 ms | 43496 KiB |
| 01_random_06.txt | AC | 508 ms | 83104 KiB |
| 01_random_07.txt | AC | 504 ms | 83016 KiB |
| 01_random_08.txt | AC | 8 ms | 5068 KiB |
| 01_random_09.txt | AC | 247 ms | 43556 KiB |
| 01_random_10.txt | AC | 1 ms | 3632 KiB |
| 01_random_11.txt | AC | 1 ms | 3516 KiB |
| 01_random_12.txt | AC | 1 ms | 3380 KiB |
| 01_random_13.txt | AC | 22 ms | 8092 KiB |
| 01_random_14.txt | AC | 1 ms | 3448 KiB |
| 01_random_15.txt | AC | 90 ms | 19356 KiB |
| 01_random_16.txt | AC | 14 ms | 6260 KiB |
| 01_random_17.txt | AC | 501 ms | 82628 KiB |
| 01_random_18.txt | AC | 1 ms | 3568 KiB |
| 01_random_19.txt | AC | 1 ms | 3516 KiB |
| 01_random_20.txt | AC | 1 ms | 3476 KiB |
| 01_random_21.txt | AC | 1 ms | 3368 KiB |
| 01_random_22.txt | AC | 1 ms | 3636 KiB |
| 01_random_23.txt | AC | 2 ms | 3564 KiB |
| 01_random_24.txt | AC | 3 ms | 4336 KiB |
| 01_random_25.txt | AC | 502 ms | 82292 KiB |
| 01_random_26.txt | AC | 1 ms | 3448 KiB |
| 01_random_27.txt | AC | 1 ms | 3372 KiB |
| 01_random_28.txt | AC | 1 ms | 3516 KiB |
| 01_random_29.txt | AC | 12 ms | 6000 KiB |
| 01_random_30.txt | AC | 1 ms | 3408 KiB |
| 01_random_31.txt | AC | 97 ms | 20732 KiB |
| 01_random_32.txt | AC | 30 ms | 8720 KiB |
| 01_random_33.txt | AC | 507 ms | 83016 KiB |
| 01_random_34.txt | AC | 1 ms | 3640 KiB |
| 01_random_35.txt | AC | 1 ms | 3456 KiB |
| 01_random_36.txt | AC | 1 ms | 3644 KiB |
| 01_random_37.txt | AC | 5 ms | 4212 KiB |
| 01_random_38.txt | AC | 65 ms | 15824 KiB |
| 01_random_39.txt | AC | 68 ms | 16360 KiB |
| 01_random_40.txt | AC | 59 ms | 13648 KiB |
| 01_random_41.txt | AC | 502 ms | 83076 KiB |
| 01_random_42.txt | AC | 1 ms | 3444 KiB |
| 01_random_43.txt | AC | 1 ms | 3644 KiB |
| 01_random_44.txt | AC | 1 ms | 3488 KiB |
| 01_random_45.txt | AC | 1 ms | 3392 KiB |
| 01_random_46.txt | AC | 2 ms | 3628 KiB |
| 01_random_47.txt | AC | 13 ms | 6408 KiB |
| 01_random_48.txt | AC | 121 ms | 23448 KiB |
| 01_random_49.txt | AC | 246 ms | 43504 KiB |
| 01_random_50.txt | AC | 1 ms | 3372 KiB |
| 01_random_51.txt | AC | 1 ms | 3432 KiB |
| 01_random_52.txt | AC | 1 ms | 3452 KiB |
| 01_random_53.txt | AC | 1 ms | 3440 KiB |
| 01_random_54.txt | AC | 1 ms | 3512 KiB |
| 01_random_55.txt | AC | 24 ms | 8700 KiB |
| 01_random_56.txt | AC | 7 ms | 5076 KiB |
| 01_random_57.txt | AC | 504 ms | 83156 KiB |
| 01_random_58.txt | AC | 1 ms | 3436 KiB |
| 01_random_59.txt | AC | 1 ms | 3404 KiB |
| 01_random_60.txt | AC | 1 ms | 3408 KiB |
| 01_random_61.txt | AC | 1 ms | 3460 KiB |
| 01_random_62.txt | AC | 1 ms | 3512 KiB |
| 01_random_63.txt | AC | 13 ms | 6604 KiB |
| 01_random_64.txt | AC | 504 ms | 82992 KiB |
| 01_random_65.txt | AC | 248 ms | 43476 KiB |
| 01_random_66.txt | AC | 1 ms | 3412 KiB |
| 01_random_67.txt | AC | 1 ms | 3584 KiB |
| 01_random_68.txt | AC | 1 ms | 3436 KiB |
| 01_random_69.txt | AC | 1 ms | 3516 KiB |
| 01_random_70.txt | AC | 1 ms | 3524 KiB |
| 01_random_71.txt | AC | 2 ms | 3528 KiB |
| 01_random_72.txt | AC | 247 ms | 43316 KiB |
| 01_random_73.txt | AC | 244 ms | 43032 KiB |
| 01_random_74.txt | AC | 1 ms | 3480 KiB |
| 01_random_75.txt | AC | 503 ms | 83020 KiB |