QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#795450 | #8954. 一般路过串串题 | RedDiamond# | 30 | 11ms | 8556kb | C++20 | 2.1kb | 2024-11-30 20:36:33 | 2024-11-30 20:36:33 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
const int MOD = 1e9 + 7;
using ULL = unsigned long long;
static const ULL P = (1ull << 61) - 1;
mt19937_64 rnd(random_device{}());
uniform_int_distribution<ULL> dist(257, P - 1);
const ULL B = dist(rnd);
static inline ULL add(ULL a, ULL b){
a += b;
if (a >= P) {
a -= P;
}
return a;
}
static inline ULL mul(ULL a, ULL b){
__uint128_t c = __uint128_t(a) * b;
return add(c >> 61, c & P);
}
int32_t main() {
if (1) {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
string s, t;
cin >> s >> t;
int n = s.size();
int m = t.size();
s = "#" + s;
t = "#" + t;
unordered_map<ULL, int> cnt;
for (int i = 1; i <= m; i += 1) {
ULL hsh = 1;
for (int j = i; j <= m; j += 1) {
hsh = mul(hsh, B);
hsh = add(hsh, t[j]);
cnt[hsh] += 1;
}
}
vector<vector<int>> occ(n + 1, vector<int>(n + 1));
for (int i = 1; i <= n; i += 1) {
ULL hsh = 1;
for (int j = i; j <= n; j += 1) {
hsh = mul(hsh, B);
hsh = add(hsh, s[j]);
occ[i][j] = cnt[hsh];
}
}
vector<vector<ll>> f(n + 1, vector<ll>(n + 1));
for (int i = 1; i <= n; i += 1) {
f[i][i] = occ[i][i];
if (i + 1 <= n) {
f[i][i + 1] = occ[i][i] + occ[i + 1][i + 1] + occ[i][i + 1];
}
}
for (int h = 3; h <= n; h += 1) {
for (int i = 1; i + h - 1 <= n; i += 1) {
int j = i + h - 1;
f[i][j] = f[i + 1][j] + f[i][j - 1] - f[i + 1][j - 1] + occ[i][j];
}
}
__int128 ans = 0;
for (int i = 1; i <= n; i += 1) {
for (int j = 1; j <= n; j += 1) {
ans += 1LL * f[i][j] * (j - i + 1) * (j - i + 1);
}
ans %= MOD;
}
cout << int(ans) << "\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 3816kb
input:
aababbabbaaabaabbaabaabaabbabbabbbbaabbbbaabaaabababbabbbaaa bababaabbbbabbbbbabbbbaabbaabaaaababbaaaabbbaabbaabbbbabbaba
output:
496507152
result:
ok "496507152"
Test #2:
score: 10
Accepted
time: 1ms
memory: 3832kb
input:
eececaecacbeabdeeaccdbbebbabddecebdcdebdbccbbddaaaeedaaebcdb acdaabeaaaeeedcadcaeeaaeaaeeceaebbedcadaaebaaaaddbeedeeabaea
output:
580397857
result:
ok "580397857"
Test #3:
score: 10
Accepted
time: 1ms
memory: 3708kb
input:
fcdfggfggcbedeccchceggdfedgecghhacegbbehegdhcgbefdadbeaghgcc ebbeegcfhhedfhchfdechefaafgaeacacdfgbhdbghedghdechgbdecebaef
output:
380084227
result:
ok "380084227"
Test #4:
score: 10
Accepted
time: 1ms
memory: 3808kb
input:
boodjlblcmmbdiejhhfcomlcingbgkhhifkbalmchidkbidipjkofgandgoj afaikkjkfgnmoagpikiidcgiigfmmdfmjgedanogdlccljbedjmgmcoeidae
output:
171472585
result:
ok "171472585"
Test #5:
score: 10
Accepted
time: 1ms
memory: 4020kb
input:
ksadeedmbrojirllkmtrkdhofjgjetrojrkfnnrhceqkbhnllfanahhgiohm ffsooatinippmdrfcdiniihahospagtflklfkknqlidddnbfqjtesgqfmpnn
output:
122853177
result:
ok "122853177"
Test #6:
score: 10
Accepted
time: 1ms
memory: 3764kb
input:
tqqeyqzvmvdnrgbdtwezhvpxjehcpehiwxoxnpsakxpedqhzmnywjovuucwj idthdhgqwasjxincaubpjclssinmnlxxrqeuxkmvkfejpropnrextrrlcgxp
output:
113266102
result:
ok "113266102"
Subtask #2:
score: 20
Accepted
Dependency #1:
100%
Accepted
Test #7:
score: 20
Accepted
time: 11ms
memory: 8040kb
input:
aaababbbbbbaabbbbbbabbbabbabbbabaaaabbabbbbbaabbaaabbbbaabbabbbbaabbbbaaabababaababaaabaaaabaaaaabbbbaabbaabbbbabaabbbabaaaaaaaabbaabaabaaabbabbababbaabbabbabaaaaaaaababbbababababaaabbaabbbbbabbababbbaabaababbbabbbbaaabbbababbbbaaabaababbbaabbabaabababbababaaaaabaaaabbabbbbbabbbaaabbababbabaaaababab...
output:
520547094
result:
ok "520547094"
Test #8:
score: 20
Accepted
time: 7ms
memory: 8556kb
input:
adcbdbecdaabaecdaadbbceecedbeababddbcedaeabceaabcbdadcebdaedaaadbdeaccceaabbaddeebaddebebcceeccccccbbeabbbdbcdbbedbeeeabdcadbcaabacabcbdbbbdeebacdccecddcabdcdebdbbaaeabbbbcbdadbccaecdbcbccaddabbcbacadebdcedccaadbcdacaeeccecdcabcebddabcebaedccebcbdeaebcabccdbccecdedabecaebeddbcddcdbcacbacccaceadeceac...
output:
782266849
result:
ok "782266849"
Test #9:
score: 20
Accepted
time: 7ms
memory: 8436kb
input:
baecgaafgfbdfffcgbffdadabbchacebcadaadghahcgehacafhdfcdgefgehcfbdacdeacehecddcfdaegfgbecgcgfedhhebdabfeachdfbabbehhcbdfhfdfbhebdfedgbhgdgbbabcbfbahcdecaahchddcahfgaeeedffdghedafcdahfbhedghgahffffbbbegghefehgbbbbagchcffbdfaacfgeghaegaadehbfacgbabacggdcddcgaacgaccgccbgbddcfcdgddabbedfhgdagfgghbecdgafb...
output:
367143412
result:
ok "367143412"
Test #10:
score: 20
Accepted
time: 5ms
memory: 8448kb
input:
hdnhnmolcjkclidbagdicfpnpjfohpgodegaaelcofejnhkonngpdgmcpbagbgfeklekppmneahbhbpepgecmaelcebdkghfblpbkmoomfpehpigfmibnmmpanckejpfepgolfmhkllbkehpapanlmmlkogohfdlekjppfhjbcllgclhclenibjcppahedcjnmimbpgccboidjpfeedmfmoelolpcoipkbmlacocdmlgfkmjopgdleigddffboelpahpcfcfbnmghipghfjckbinfncglgckhjkjomppjlfa...
output:
661539752
result:
ok "661539752"
Test #11:
score: 20
Accepted
time: 11ms
memory: 8440kb
input:
bcslnfnhcghmeifrrqjktgkhenisgkeheckktpjcbqgrelonaqetcgsslgqrimqmgscsndaptsepcljchfnbllloradfmljljejchbjhtoobfdpeiirllifiiifblhmalnpsoernkehhhclidalojjprjmkbtobkhibbnshpcgpciscdtnsiofferqfrkstkhadmlchfichjbbmmhcabhfffncoqbngigbaretcmocbhdgtkiteiqjfcmlsneqncrftbeogsqtrlfqoghsgehdgloqqkmjnboeplsbbgatss...
output:
507358998
result:
ok "507358998"
Test #12:
score: 20
Accepted
time: 10ms
memory: 8388kb
input:
vkypxiucqbsajxealvcbnymcevlaehbzrbqqjlsbomczkiaxdeatfoxjjkkotnpmogcatvbhjfhvojstpsmujlesvqgqfyctefvxczglenhsyboowcifooxlggcleehklchnbpbificdlqthteohsmubuwmadtkowtezifjnpmtcemkxsyglmbmizaieuutsnztygdnvpgztvjtnkbaycojepriloddbcwbibpfsxfouqhkcikdnbmtsdbfthivlgywkpdcpkqjdxtfigixjwqbctgvcqqoyrkignlvabhdb...
output:
138681994
result:
ok "138681994"
Subtask #3:
score: 0
Time Limit Exceeded
Dependency #2:
100%
Accepted
Test #13:
score: 0
Time Limit Exceeded
input:
abababbbbaabbbaabaaababbabaaababababababbababbbabbbbbaabbababababbbbababbbabbbbaaabbbbbaaaababbbaaaabbabaaabbbabababbbbbaaaabaaaaaaababaabbbabaabbbaabbabbbabbaabbabbbbaaabaaabbbabbbaaabbbbabbbabaaabaaabaabbbaaaabaaabbbababababbaabaaabaaabaabaabaabbbbabbbababaaaabbbbbabbaaaaaaababaabbbbbbbbabbbababbb...
output:
result:
Subtask #4:
score: 0
Skipped
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #4:
0%