QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#488392 | #5065. Beautiful String | Kevin5307 | AC ✓ | 2383ms | 296688kb | C++23 | 1.7kb | 2024-07-23 22:25:39 | 2024-07-23 22:25:39 |
Judging History
answer
//Author: Kevin
#include<bits/stdc++.h>
//#pragma GCC optimize("O2")
using namespace std;
#define ll long long
#define ull unsigned ll
#define pb emplace_back
#define mp make_pair
#define ALL(x) (x).begin(),(x).end()
#define rALL(x) (x).rbegin(),(x).rend()
#define srt(x) sort(ALL(x))
#define rev(x) reverse(ALL(x))
#define rsrt(x) sort(rALL(x))
#define sz(x) (int)(x.size())
#define inf 0x3f3f3f3f
#define pii pair<int,int>
#define lb(v,x) (int)(lower_bound(ALL(v),x)-v.begin())
#define ub(v,x) (int)(upper_bound(ALL(v),x)-v.begin())
#define uni(v) v.resize(unique(ALL(v))-v.begin())
#define longer __int128_t
void die(string S){puts(S.c_str());exit(0);}
int val[5005][5005],tr[5005][10];
int cnt[5005][5005],f[5005][5005];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n;
string s;
cin>>s;
n=sz(s);
for(int i=0;i<n;i++)
val[i][1]=(s[i]^48)+1;
for(int i=2;i<=n;i++)
{
int tot=0;
for(int j=0;j<=n-i;j++)
{
int A=val[j][i-1],B=s[j+i-1]^48;
if(!tr[A][B]) tr[A][B]=++tot;
val[j][i]=tr[A][B];
}
for(int j=0;j<=n-i;j++)
tr[val[j][i-1]][s[j+i-1]^48]=0;
}
for(int i=0;i<n;i++)
{
for(int j=i-1;j>=0;j--)
cnt[i-j][val[j][i-j]]++;
int sum=0;
for(int j=i;j<n;j++)
{
f[i][j]=sum;
sum+=cnt[j-i+1][val[i][j-i+1]];
}
for(int j=i-1;j>=0;j--)
cnt[i-j][val[j][i-j]]--;
}
ll ans=0;
for(int i=n-1;i>=0;i--)
{
for(int j=i-1;j>=0&&cnt[i-j][val[j][i-j]];j--)
ans+=1ll*f[j][i-1]*cnt[i-j][val[j][i-j]];
for(int j=i;j<n;j++)
cnt[j-i+1][val[i][j-i+1]]++;
}
memset(cnt,0,sizeof(cnt));
cout<<ans<<'\n';
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 8ms
memory: 103488kb
input:
2 114514 0000000
output:
1 3
result:
ok 2 number(s): "1 3"
Test #2:
score: 0
Accepted
time: 337ms
memory: 296688kb
input:
11 79380 2483905227 37902399703986576270 39991723655814713848046032694137883815354365954917 5541883522667841718787744915558298207485830622522715211018760095628594390563630840464643840093757297 56530485554219245862513973750218715585679416120445975390556326891488719311495909340757506478400624741858999...
output:
0 0 0 2 4 20 119 113 1086 2128 15166
result:
ok 11 numbers
Test #3:
score: 0
Accepted
time: 381ms
memory: 110500kb
input:
50 11111111111111111111111111111111111111121111111111111111111111111111111111111112111111111121111111111211111121211121111111111111111111111111111211121111111111111111111111111111111111111111111111111112 111111111111111111111111111111111111111111111121111121111111111111111111111111111111111111111111...
output:
779344 799116 716078 723215 1197647 403357 652134 625671 414294 942493 390998 793444 612061 507395 473508 836065 461623 374925 539333 592574 676408 610940 463761 490048 995917 595830 424894 332669 596834 655095 521489 1032050 697420 752056 406316 360973 1180943 948628 478572 1026603 711224 429752 49...
result:
ok 50 numbers
Test #4:
score: 0
Accepted
time: 379ms
memory: 111120kb
input:
50 11211121122222111222111111222112111221112111121112221111111121211111212211212122112212221221112112221221112211211112121222112221211122112211112111112112211121222111222212211121111111112111112121111122 112112121211212111212221221222211211121212221111112122121211112221221121121112111221211112122121...
output:
7499 6375 7041 7889 6622 6804 8695 8795 7018 8387 8910 8019 8223 8820 7324 7144 8035 9941 7073 7373 7427 7280 6946 8204 7931 6769 7050 9268 7682 8232 7797 7356 7012 8967 7469 6869 11728 6562 7604 8840 7885 8658 7006 8156 10694 6716 6121 7499 7456 7981
result:
ok 50 numbers
Test #5:
score: 0
Accepted
time: 511ms
memory: 181612kb
input:
15 111111111111111111111111111111111111111111111111111111111111121111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111211111111111111111111111111111111111111111111111...
output:
6611556286 8447635347 4351265656 8244172287 6847075843 5064323828 5818821992 5187397748 6202849391 7100699750 8826693258 9304467838 9691754783 12524687288 10378182916
result:
ok 15 numbers
Test #6:
score: 0
Accepted
time: 513ms
memory: 182252kb
input:
15 111111111111111111111111111111111111111111111111111111121112111111111111111111111111211111112111111111111111111111111112112111111111211111111111111111121211111111111111111112121111211112112111111112111111111111111112111111111111111111111111111111111111111211111211211111111111111112211111111111111...
output:
99283290 121730268 95231372 139100190 109487920 93015077 138212377 180336129 94959502 88117283 81796472 100172151 133716692 92198870 119549081
result:
ok 15 numbers
Test #7:
score: 0
Accepted
time: 2302ms
memory: 296596kb
input:
6 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
385321895637 278064026340 462204013200 622961805899 319151572118 194136546751
result:
ok 6 numbers
Test #8:
score: 0
Accepted
time: 2349ms
memory: 295248kb
input:
6 1111211111111111111111111112111111111111111111111111111111111111111111111111111111111111111121111111112111111111111111111111211111111111111111111111111111111111111111111111111111112111111111111111111111111111111111111111111111111111111111111111111111111111111211111111112111111111111111111111111111...
output:
4279296283 6481388714 4807510535 5043682133 5816318027 4092854445
result:
ok 6 numbers
Test #9:
score: 0
Accepted
time: 2065ms
memory: 294964kb
input:
6 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
4333336111111 4333336111111 4333336111111 4333336111111 4333336111111 4333336111111
result:
ok 6 numbers
Test #10:
score: 0
Accepted
time: 2359ms
memory: 296552kb
input:
6 1111111111111111111111111111111111121111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111112111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
4827246439 5292779668 4777240971 4935748521 5102858676 4471955490
result:
ok 6 numbers
Test #11:
score: 0
Accepted
time: 2363ms
memory: 296120kb
input:
6 1111111111112111111112111111111111111211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111211111111111111111111111111111111111111112111111111111111111111111111111111111111111111121111111111111111111111111111111111111111111111111111111121111111111111111111111111...
output:
5823633843 3699828594 5341000227 4377298465 5641079075 4447500985
result:
ok 6 numbers
Test #12:
score: 0
Accepted
time: 2354ms
memory: 296260kb
input:
6 1111111111111111111111111111111121121111111111111111112111111111111111111111111111111111111111111111111211111111111111111111121111111111111111111111111111111111111111111111111111111121111111111211111111111111111111111111121111112111111111111111111111111111111111111111111111111112111111111111111111...
output:
4267388536 4492067906 3738167207 4136464174 5508219259 4485317348
result:
ok 6 numbers
Test #13:
score: 0
Accepted
time: 2352ms
memory: 295644kb
input:
6 1101000101000011111101010011000111011101101000100101001011110000000010100000011011010010110000100000100100101110000010110010101011011100101000111010101110101010100011011111111111101001110101011000000011100011110001100001100101101111101011101110001000100110011001101100000010111111000010010110100011...
output:
4170757 4235303 4280835 4036729 4224784 4097571
result:
ok 6 numbers
Test #14:
score: 0
Accepted
time: 2318ms
memory: 296444kb
input:
6 1000010101000000011000111100000101011010010011100011011000010110111100111100000011011010110111000110000000010011000110110110101010010001110101100011100111101010100100111010000111101110110010100100010111010100111011011010001100001011111110100111011011110111110011011110001000001110000111001110000001...
output:
4170610 4216137 4141929 4074459 4103480 4155187
result:
ok 6 numbers
Test #15:
score: 0
Accepted
time: 2383ms
memory: 294668kb
input:
6 0010101111000111001110000101110110111110111001000111111101101000010110010110011001110111000100100110101110101110110001001110101110010100000001011000000110001010001101101100010100101001111100010010011110110110010011100110110011000010100111010000001001000011101000001100000010111000100111001111000011...
output:
4188094 4069991 4153306 4138723 4193430 4269969
result:
ok 6 numbers
Test #16:
score: 0
Accepted
time: 2336ms
memory: 295288kb
input:
6 1010011000022211220102102221221120220200012021212112100210101220120211212010020000001200102200001021100202210100212011022212000020001120211012111021201021201220012221011220100212012112021210220202110212122010110220100212102001121021212201201202220011202011121020002122220201022101012100110120200202...
output:
762521 775249 766566 776466 767496 773997
result:
ok 6 numbers
Test #17:
score: 0
Accepted
time: 2356ms
memory: 295380kb
input:
6 2112200102110121202000120220021122121112012120022122222000022200200200211122202220011202112012022110001210200101222201000121012210200200121222101011112202101220220100201111102020110120202110212100011101022020220222022201220210210010212100120200220210110020010002212210222220220122101021222212102012...
output:
775146 780112 772793 789871 769398 751477
result:
ok 6 numbers
Test #18:
score: 0
Accepted
time: 2342ms
memory: 296432kb
input:
6 1202020112011201022200111211201111201112021222202021211010212110111212212021210022212220102001102212021012020201112210211001112121110021122220210011011111200001210100110100022020002221212201210002002201121002012101001122212000012000221012102122002202121221012120010012210221102120221112020021102200...
output:
770245 773441 778781 774717 763612 785411
result:
ok 6 numbers
Test #19:
score: 0
Accepted
time: 2332ms
memory: 295960kb
input:
6 1403433222403320324443213210401332204104111441413010310140204031300032441124444024440444032203210330020104104024321422401444400214444401012242144300114343324010000332043341320044400440221433034402011001440122344021300323423140212040404341013130244243312333424204220102034014133104032302000242104333...
output:
127310 131513 132001 133547 136948 123146
result:
ok 6 numbers
Test #20:
score: 0
Accepted
time: 2327ms
memory: 296368kb
input:
6 4420212030303213202420200421002204043223242404131332322013240323024421211333422120334210210322141014423131241104001320012024401040142403221101312330144111303244432233344222004311342314001104344332304000332444330123043110212434421432133044042020231441143211202223112033431111334241014440341202124111...
output:
133037 135811 136885 131180 122015 132937
result:
ok 6 numbers
Test #21:
score: 0
Accepted
time: 2341ms
memory: 295756kb
input:
6 4332230232243230444230131024204211040243041244334030202344403220024231030034441044424432243332040132013111231340040332313403140042002043232021032222301011023040424430332121024433024423342042330400121000310403223022401140331041341342144244242001003344304422234013403242040101241211004243144123211431...
output:
127430 133525 126715 132274 127698 126098
result:
ok 6 numbers
Test #22:
score: 0
Accepted
time: 2355ms
memory: 296500kb
input:
6 0527263590989141398232467856769831076313726236318424949659487118071189858207212813256095130174457689283834002567489506688742811929495836845346574214442431806207922088635218623247713449618250327996704066964677828138959300478603648072151173680624525749414417511246438552658377964191998159022294264700...
output:
13052 14055 12735 13977 13607 13263
result:
ok 6 numbers
Test #23:
score: 0
Accepted
time: 2309ms
memory: 296320kb
input:
6 8985698942224498646718114023735214365880465106150608651120921860620477353602287449891278787783353603584570539632891665520222495181615797114829203643301699646447450283290904599608791054139526174224570160892800365598486001957635902589788386777049717342723358733031824964857029876786039246614641902915...
output:
14405 14107 14583 13846 13886 14627
result:
ok 6 numbers
Test #24:
score: 0
Accepted
time: 2369ms
memory: 295220kb
input:
6 2965981105224229828206155834019360865567450584618944735155746817705841028252810298576084705498691348447250223233175567175756271273064057221729918634935150104533255094708503568665533583917395614462772605254978221157191215802752180325788860577750484790419032850005124772538059322878051522259269884117...
output:
14349 13527 14319 14103 13213 13615
result:
ok 6 numbers