QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#607054 | #7814. 消消乐 | tiankonguse | 75 | 136ms | 15324kb | C++20 | 1.4kb | 2024-10-03 13:47:41 | 2024-10-03 13:47:42 |
Judging History
answer
/*
ID: tiankonguse
TASK: game
LANG: C++
CONTEST: CSP-S 2023
OJ: https://qoj.ac/problem/7814
*/
#define TASK "game"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod1e7 = 1000000007, mod1e9 = 1000000009;
const ll BASE = 29;
const int N = 2000010;
const int M = 26;
char str[N];
void InitIO() {
// #ifndef USACO_LOCAL_JUDGE
// freopen(TASK ".in", "r", stdin);
// freopen(TASK ".out", "w", stdout);
// #endif
}
ll qpow(ll x, ll v, ll mod) {
x = x % mod;
ll y = 1;
while (v) {
if (v & 1) y = y * x % mod;
x = x * x % mod;
v >>= 1;
}
return y;
}
ll inv(ll x, ll mod) { return qpow(x, mod - 2, mod); }
/*
*/
void Solver() {
ll n;
scanf("%lld%s", &n, str);
unordered_map<ll, ll> h;
stack<char> sta;
ll pre = 0;
ll ans = 0;
h[0] = 1;
for (int i = 0; i < n; i++) {
const char c = str[i];
const ll v = c - 'a' + 1;
if (!sta.empty() && sta.top() == c) {
int k = sta.size();
sta.pop();
pre = ((pre - v * qpow(BASE, k, mod1e7)) % mod1e7 + mod1e7) % mod1e7;
} else {
sta.push(c);
int k = sta.size();
pre = (pre + v * qpow(BASE, k, mod1e7)) % mod1e7;
}
// printf("i=%d add+%lld\n", i, h[pre]);
ans += h[pre];
h[pre]++;
}
printf("%lld\n", ans);
}
int main() {
InitIO();
Solver();
return 0;
}
/*
8
accabccb
*/
詳細信息
Pretests
Final Tests
Test #1:
score: 5
Accepted
time: 1ms
memory: 3808kb
input:
10 aaaaaaaaaa
output:
25
result:
ok single line: '25'
Test #2:
score: 5
Accepted
time: 0ms
memory: 3752kb
input:
10 ooooppuuhh
output:
16
result:
ok single line: '16'
Test #3:
score: 5
Accepted
time: 0ms
memory: 4104kb
input:
10 nnppkkppjj
output:
16
result:
ok single line: '16'
Test #4:
score: 5
Accepted
time: 0ms
memory: 4096kb
input:
10 vvcckkhhqq
output:
15
result:
ok single line: '15'
Test #5:
score: 5
Accepted
time: 0ms
memory: 4032kb
input:
10 llmmxxoopp
output:
15
result:
ok single line: '15'
Test #6:
score: 5
Accepted
time: 0ms
memory: 3852kb
input:
800 jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjddzziiyyyyjjooppiivvppmmooppttnnbbmmaaqqvvkkllyyvvmmjjsswwxxccwweeeekkhhaakkvvffaaiieessmmiibbff...
output:
38306
result:
ok single line: '38306'
Test #7:
score: 5
Accepted
time: 0ms
memory: 4108kb
input:
800 pffpgppguqqugllgwhhwxjjxpkkpxnnxlkklunnuxiixallayqqyccccjnnjnyynqccqqjjqtuutboobwddwfwwfgvvgwuuwpqqppttpyggysrrsgwwgeddexbbxbssbvbbvbeebweewwkkwwddwnoontddtcddcajjapffptcctkeekboobfjjfvaavpjjpriirlfflnazdsevmozgezlngnhktrllcgorjoollwtqylmmzxfeibnifcebsnnugzluzlizievzxfnlokzodymigextlmyltzbmptyjf...
output:
27479
result:
ok single line: '27479'
Test #8:
score: 5
Accepted
time: 1ms
memory: 3900kb
input:
8000 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv...
output:
3820477
result:
ok single line: '3820477'
Test #9:
score: 5
Accepted
time: 1ms
memory: 3900kb
input:
8000 neenbnnbvjjvddddommolrrlzttzqwwqlfflijjiaqqayaayihhiqmmqduudlzzlyzzyannatyytfiifbqqbroorcffcgjjgwhhwoqqopuupdjjdeqqewnnwvwwvpiiprqqrukkuhbbhsiisrqqrxvvxfmmfzkkzjlljimmiazzariirdvvdcuucpaapbaabbaabccccxqqxivvipttpqffqmggmzhhzdaadyxxyhccheddeaiianggnxjjxqssqfaafqllqskksfuufviivozzocwwcznnzfxxfnss...
output:
2713693
result:
ok single line: '2713693'
Test #10:
score: 5
Accepted
time: 1ms
memory: 3968kb
input:
8000 ivviurrukrrkaccafoofaxxaleelcyycsiisimmifvvfoeeodppdneenqjjqsccsguugonnoyiiymttmcjjcmkkmjwwjieeikeekdbbdolloyvvyolloxiixmaamfnnfzrrzqbbqweewvttvboobbeebcmmcsqqsiyyifddfyvvyvttvvddvejjeeeeeleellzzlzbbzcrrcobbowsswquuqozzoyqqyulluwvvwyxxyxllxwrrwgmmgeppecvvcsiisyvvyukkuyppyryyrhjjhthhtvssvvnnvnee...
output:
2721590
result:
ok single line: '2721590'
Test #11:
score: 0
Wrong Answer
time: 46ms
memory: 13108kb
input:
200000 tdaatgfvypbdkxdlvttiuksoooxszoqnqvmtznizlqfstlenqrnmdpkmvhmzftporwzvlbpyplrvrkgrpvqxyjcwwpcinilarbaudodadcglszflkzvmmdahgqphqoueltddqlymwpvweslymviccsmhuezesmlwsswgznaofullpxciuezrbkxfnodiglhpyrfcjajyuqzfoxsysgeqrqmvtqysypgaivfetwhmgxngzdvavbkipanoopqftdmntwpxgaljiqrkppywfuspzfgljheckapftjqar...
output:
8381
result:
wrong answer 1st lines differ - expected: '8356', found: '8381'
Test #12:
score: 0
Wrong Answer
time: 39ms
memory: 13100kb
input:
200000 nleqrvpkpopfbstnolidsxrfhivbwbbqbwxmvymzmnwozrbklbuwliccquzhpfjsbxlnkzewvjpjarqmwcpsvovxeynjrgdjxrauincbnjvokawliinjqqulwxxeztpbrotihuiyjjqsxxosragocxbpjmhquczgwfakfaojxslteazikjqkebpcrrggswjiyetkpyvjubhtoounhveftykvetuwqgpddicnarbsigpjytmhcymvapbmkforkaeccsuhmwiuljmvajlztzjghnohlmxnmdehfxnra...
output:
8358
result:
wrong answer 1st lines differ - expected: '8340', found: '8358'
Test #13:
score: 5
Accepted
time: 9ms
memory: 4064kb
input:
200000 abbabbbbbbaababaaabaaaababaaaaaabbababababbabbaaababbbbaabaabbbbbbababaabababbababaabbaabaaaabbbbbaabbbbaababbbabaaababbbbbbbbbbabbbabaabaabaababbbbbbabaabbbbbbbbbbaaabbbbabaabbaababaaabbabbaaabbbbbaaabababaababbaaabbbbababbbbbbaaaabaaaaaaabbbaabbaaaabbabbbbbaabbbbbbbabbaaaabaaabaabbaaaababbb...
output:
52315097
result:
ok single line: '52315097'
Test #14:
score: 5
Accepted
time: 8ms
memory: 4276kb
input:
200000 aaaababaaaaabbabababbbbabbbbababbabbaabaaabbabbaabaaaaaabaaaabbbbbbbabaabbabaabababbbaabbbbabbbbbaabaaaabaaaababaaaabbaaaaabbbabbbabbbbbbbaabbbabbaaabbbabaabaaaaaaaaababbaaabbbbaabaabbaaababbabbaabbbbaaababbbbbbbbbbbaabaaabbaaabaabbaaabbabaabbabbaabbbababbaaabaaaaaabbbbbbbabaabbabbaabaabaabaa...
output:
72221142
result:
ok single line: '72221142'
Test #15:
score: 5
Accepted
time: 11ms
memory: 5020kb
input:
200000 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...
output:
2395581278
result:
ok single line: '2395581278'
Test #16:
score: 5
Accepted
time: 11ms
memory: 4712kb
input:
200000 sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss...
output:
2396621459
result:
ok single line: '2396621459'
Test #17:
score: 5
Accepted
time: 11ms
memory: 5064kb
input:
200000 ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo...
output:
2395864064
result:
ok single line: '2395864064'
Test #18:
score: 0
Wrong Answer
time: 114ms
memory: 15312kb
input:
2000000 iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii...
output:
239586659505
result:
wrong answer 1st lines differ - expected: '239586659381', found: '239586659505'
Test #19:
score: 0
Wrong Answer
time: 105ms
memory: 15324kb
input:
2000000 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...
output:
239687303938
result:
wrong answer 1st lines differ - expected: '239687303822', found: '239687303938'
Test #20:
score: 0
Wrong Answer
time: 136ms
memory: 15284kb
input:
2000000 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv...
output:
239608981263
result:
wrong answer 1st lines differ - expected: '239608981171', found: '239608981263'