QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#358239 | #3176. Candy Chain | PetroTarnavskyi# | AC ✓ | 11ms | 8024kb | C++20 | 1.9kb | 2024-03-19 18:21:54 | 2024-03-19 18:21:57 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) int(a.size())
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second
typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef double db;
const int N = 10'474;
const int ALP = 26;
int g[N][ALP];
int sz = 1;
int add(string s)
{
int v = 0;
FOR (i, 0, SZ(s))
{
if (g[v][s[i] - 'a'] == -1)
g[v][s[i] - 'a'] = sz++;
v = g[v][s[i] - 'a'];
}
return v;
}
const int INF = 1e9;
const int N2 = 74;
int dp[N2][N2];
int dp2[N2][N];
int cst[N];
string s;
void f(int L)
{
int n = SZ(s);
FOR (i, 0, N2) FOR (j, 0, N) dp2[i][j] = -INF;
dp2[L][0] = 0;
FOR (i, L, n)
{
FOR (v, 0, sz)
{
if (dp2[i][v] == -INF)
continue;
int u = g[v][s[i] - 'a'];
if (u != -1)
{
dp2[i + 1][u] = max(dp2[i + 1][u], dp2[i][v]);
}
FOR (j, i + 1, n + 1)
dp2[j][v] = max(dp2[j][v], dp2[i][v] + dp[i][j]);
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
FOR(i, 0, N) FOR(j, 0, ALP) g[i][j] = -1;
fill(cst, cst + N, -INF);
cin >> s;
int C;
cin >> C;
vector<string> v(C);
VI cost(C);
FOR (i, 0, C)
{
cin >> v[i] >> cost[i];
FOR (t, 0, 2)
{
int a = add(v[i]);
cst[a] = max(cst[a], cost[i]);
reverse(ALL(v[i]));
}
}
FOR (i, 0, N2) FOR (j, 0, N2) dp[i][j] = -INF;
int n = SZ(s);
RFOR (L, n, 0)
{
f(L);
FOR (R, L + 1, n + 1)
{
FOR (u, 0, sz)
{
dp[L][R] = max(dp[L][R], dp2[R][u] + cst[u]);
}
}
}
VI ans(n + 1, -INF);
ans[0] = 0;
FOR (i, 0, n)
{
ans[i + 1] = max(ans[i + 1], ans[i]);
FOR (j, i + 1, n + 1)
ans[j] = max(ans[j], ans[i] + dp[i][j]);
}
cout << ans[n] << '\n';
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 5ms
memory: 7988kb
input:
acmicpcxxxacmzacmzacmzmca 5 icpc 5 cpci 1 acm 2 acmacm 10 xxx 0
output:
21
result:
ok single line: '21'
Test #2:
score: 0
Accepted
time: 2ms
memory: 7976kb
input:
aaabaaa 3 aaaaaa 10 ba 5 b 1
output:
11
result:
ok single line: '11'
Test #3:
score: 0
Accepted
time: 3ms
memory: 7816kb
input:
abbabbaabbbaaaabbbbaaaaabababbbbaabbabbb 38 a 1 aa 1 aaa 3 aaaa 10 aaaaa 3 aaaaaa 23 aaaaaaa 21 aaaaaaaa 35 aaaaaaaaa 58 aaaaaaaaaa 60 aaaaaaaaaaa 19 aaaaaaaaaaaa 130 aaaaaaaaaaaaa 44 aaaaaaaaaaaaaa 70 aaaaaaaaaaaaaaa 220 aaaaaaaaaaaaaaaa 109 aaaaaaaaaaaaaaaaa 155 aaaaaaaaaaaaaaaaaa 35 aaaaaaaaaaaaa...
output:
372
result:
ok single line: '372'
Test #4:
score: 0
Accepted
time: 6ms
memory: 7792kb
input:
ghfadbaehfdaagebhdfaaggghahcfdddcadfcdbb 152 a 1 aa 1 aaa 3 aaaa 10 aaaaa 3 aaaaaa 23 aaaaaaa 21 aaaaaaaa 35 aaaaaaaaa 58 aaaaaaaaaa 60 aaaaaaaaaaa 19 aaaaaaaaaaaa 130 aaaaaaaaaaaaa 44 aaaaaaaaaaaaaa 70 aaaaaaaaaaaaaaa 220 aaaaaaaaaaaaaaaa 109 aaaaaaaaaaaaaaaaa 155 aaaaaaaaaaaaaaaaaa 35 aaaaaaaaaaaa...
output:
82
result:
ok single line: '82'
Test #5:
score: 0
Accepted
time: 3ms
memory: 7720kb
input:
ghfadbaehfdaagebhdfaaggghahcfdddcadfcdbb 87 a 1 aa 2 aaa 3 aaaa 10 aaaaa 3 aaaaaa 23 aaaaaaa 21 aaaaaaaa 35 aaaaaaaaa 58 aba 8 b 1 ba 3 bb 4 bba 7 bbb 4 bbbb 14 bbbbb 20 bbbbbb 4 bbbbbbb 30 bbbbbbbb 42 bbbbbbbbb 35 c 1 ca 2 cba 6 cc 3 ccc 5 cccc 3 ccccc 21 cccccc 36 ccccccc 11 cccccccc 22 ccccccccc ...
output:
93
result:
ok single line: '93'
Test #6:
score: 0
Accepted
time: 7ms
memory: 7672kb
input:
eddcbbceddfcceedbbdaccaafededddbaebbebdb 200 a 1 aa 2 aaa 3 aab 5 aac 4 aad 7 aae 6 aaf 4 ab 2 abb 1 abc 2 abd 4 abe 4 abf 5 ac 5 acb 2 acc 7 acd 3 ace 6 ad 1 adb 6 adc 1 add 7 ade 2 ae 2 aeb 1 aec 2 aed 6 aee 6 af 6 afb 5 afc 8 afd 4 afe 8 b 1 ba 3 bab 3 bac 3 bad 6 bae 4 baf 3 bb 2 bbb 7 bbc 3 bbd...
output:
113
result:
ok single line: '113'
Test #7:
score: 0
Accepted
time: 3ms
memory: 7792kb
input:
ijlhohmognbblqbiljqlmqfmdmldhceplgnifqnl 200 a 1 aa 3 aaa 3 aaaa 10 ab 5 ac 1 ad 5 ae 6 af 6 ag 6 ah 5 ai 1 b 1 ba 6 bb 4 bbb 3 bbbb 3 bc 3 bd 4 be 5 bf 5 bg 1 bh 6 bi 4 c 1 ca 2 cb 2 cc 6 ccc 4 cccc 2 cd 6 ce 1 cf 5 cg 5 ch 3 ci 5 d 1 da 3 db 1 dc 5 dd 1 ddd 4 dddd 13 de 2 df 2 dg 6 dh 1 di 2 e 1 e...
output:
87
result:
ok single line: '87'
Test #8:
score: 0
Accepted
time: 8ms
memory: 8024kb
input:
ijlhohmognbblqbiljqlmqfmdmldhceplgnifqnlefepfnghnf 200 a 1 aa 2 aaa 6 aaaa 8 ab 4 ac 4 ad 6 ae 2 af 5 ag 1 ah 6 ai 3 b 1 ba 3 bb 3 bbb 6 bbbb 14 bc 6 bd 6 be 5 bf 6 bg 6 bh 6 bi 1 c 1 ca 2 cb 5 cc 4 ccc 5 cccc 13 cd 4 ce 2 cf 2 cg 1 ch 6 ci 5 d 1 da 2 db 5 dc 6 dd 1 ddd 4 dddd 15 de 3 df 1 dg 3 dh 4...
output:
125
result:
ok single line: '125'
Test #9:
score: 0
Accepted
time: 8ms
memory: 7720kb
input:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 45 a 1 aa 2 aaa 6 aaaa 8 aaaaa 10 aaaaaa 13 aaaaaaa 17 aaaaaaaaa 20 aaaaaaaaaa 25 aaaaaaaaaaa 35 aaaaaaaaaaaa 50 aaaaaaaaaaaaa 70 aaaaaaaaaaaaaa 85 aaaaaaaaaaaaaaa 100 aaaaaaaaaaaaaaaa 130 aaaaaaaaaaaaaaaaa 200 aaaaaaaaaaaaaaaaaa 250 aaaaaaaaaaaaaaa...
output:
10900
result:
ok single line: '10900'
Test #10:
score: 0
Accepted
time: 9ms
memory: 7824kb
input:
befccaecfeceffabcaaafbdfbdbddabfbbcadefedaccccfaee 200 a 1 aa 2 aaa 3 aab 5 aac 4 aad 7 aae 6 aaf 4 ab 2 abb 1 abc 2 abd 4 abe 4 abf 5 ac 5 acb 2 acc 7 acd 3 ace 6 ad 1 adb 6 adc 1 add 7 ade 2 ae 2 aeb 1 aec 2 aed 6 aee 6 af 6 afb 5 afc 8 afd 4 afe 8 b 1 ba 3 bab 3 bac 3 bad 6 bae 4 baf 3 bb 2 bbb 7...
output:
142
result:
ok single line: '142'
Test #11:
score: 0
Accepted
time: 8ms
memory: 7724kb
input:
ccnncbhjjcgelafgoadhcfdhiicfehjnnnconabgbgfbcccboe 200 a 1 aa 2 aaa 6 aaaa 8 ab 4 ac 4 ad 6 ae 2 af 5 ag 1 ah 6 ai 3 b 1 ba 3 bb 3 bbb 6 bbbb 14 bc 6 bd 6 be 5 bf 6 bg 6 bh 6 bi 1 c 1 ca 2 cb 5 cc 4 ccc 5 cccc 13 cd 4 ce 2 cf 2 cg 1 ch 6 ci 5 d 1 da 2 db 5 dc 6 dd 1 ddd 4 dddd 15 de 3 df 1 dg 3 dh 4...
output:
136
result:
ok single line: '136'
Test #12:
score: 0
Accepted
time: 11ms
memory: 7728kb
input:
aaabaababababbbaabababaabbbbbbbbbbabbaabaaaaaababb 200 a 1 aa 14 aaa 61 aaaaaaa 1862 aaaaaaaba 4487 aaaab 523 aaaababa 2374 aaaababbaa 1846 aaaabb 394 aaaabbab 3158 aaaabbaba 950 aaaabbabbb 851 aaab 147 aaaba 31 aaabaa 909 aaabaab 2120 aaabaabbbb 2071 aaabab 396 aaababbba 4561 aaababbbaa 5407 aaabba...
output:
35596
result:
ok single line: '35596'
Test #13:
score: 0
Accepted
time: 8ms
memory: 7668kb
input:
abaaabaabababaabaabbbbaabbbaabbbababababbbbabaaaaa 200 a 1 aa 14 aaa 72 aaaa 251 aaaaa 635 aaaaaa 1242 aaaaaaabb 5887 aaaaaabab 5919 aaaaaababb 1304 aaaaab 781 aaaaabab 152 aaaaabb 1254 aaaabaabb 2428 aaaababb 3786 aaaabb 244 aaaabba 1240 aaaabbbaa 5384 aaabaa 238 aaabaaaaba 547 aaabab 569 aaababb 1...
output:
36275
result:
ok single line: '36275'
Test #14:
score: 0
Accepted
time: 11ms
memory: 7668kb
input:
aabbaabbababaaaabbbbabbaaababaaaaaaabaaababbbbaabb 200 a 1 aa 14 aaa 55 aaaa 230 aaaaa 166 aaaaaa 457 aaaaaabbb 486 aaaaababaa 1772 aaaab 626 aaaaba 390 aaaabaaab 1997 aaaabaab 786 aaaabaaba 2007 aaaababa 3822 aaaababba 3465 aaaabba 771 aaaabbba 2171 aaaabbbbab 4912 aaab 210 aaaba 239 aaabababa 1710...
output:
39966
result:
ok single line: '39966'
Test #15:
score: 0
Accepted
time: 10ms
memory: 7724kb
input:
babbbaaabbaaaaabbbaaaabaaabbaaaabbbabbaaaabaababbb 200 a 1 aa 13 aaa 18 aaaa 158 aaaaa 507 aaaaaa 457 aaaaaaa 66 aaaaab 312 aaaaabbb 1839 aaaab 95 aaaaba 1045 aaaabab 565 aaaabb 1157 aaaabbba 1200 aaab 176 aaaba 235 aaabaaab 829 aaabab 856 aaababa 1089 aaabb 361 aaabba 293 aaabbaaa 1746 aaabbabb 294...
output:
20495
result:
ok single line: '20495'
Test #16:
score: 0
Accepted
time: 9ms
memory: 7724kb
input:
acdadcacabaddbaacdbadabdcbadcacdaadbcdbabadabdbcbc 200 a 1 aa 18 aaa 80 aaab 47 aaac 195 aaad 230 aab 55 aaba 64 aabb 158 aabc 95 aac 83 aad 77 aadb 126 aadc 137 ab 5 aba 18 abb 42 abbd 35 abc 49 abcb 144 abcc 53 abcd 192 abd 60 abda 55 abdc 89 abdd 263 ac 13 aca 60 acaa 113 acac 153 acb 25 acba 240...
output:
3067
result:
ok single line: '3067'