QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#482711#4224. 串yqh202575 411ms187416kbC++141.7kb2024-07-17 20:51:102024-07-17 20:51:10

Judging History

你现在查看的是最新测评结果

  • [2024-07-17 20:51:10]
  • 评测
  • 测评结果:75
  • 用时:411ms
  • 内存:187416kb
  • [2024-07-17 20:51:10]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int n;
namespace SAM{
	struct hzzdj{
		int len,father,son[30];
	}hz[N<<1];
	int tot,last;
	int mi[N<<1],siz[N];
	vector<int>E[N<<1];
	void init(){
		// memset(mi,127,sizeof(mi));
		for(int i=0;i<=tot;i++){
			hz[i].len=hz[i].father=0;
			memset(hz[i].son,0,sizeof(hz[i].son));
			siz[i]=0;mi[i]=N+10;
			E[i].clear();
		}
		tot=0;last=0;hz[0].father=-1;
	}
	void insert(char ch,int i){
		int cha=ch-'a',p=last;
		int cur=++tot;hz[cur].len=hz[p].len+1;
		mi[cur]=i;siz[cur]=1;
		while(p!=-1&&!hz[p].son[cha]){
			hz[p].son[cha]=cur;
			p=hz[p].father;
		}
		if(p==-1)hz[cur].father=0;
		else{
			int q=hz[p].son[cha];
			if(hz[q].len==hz[p].len+1)hz[cur].father=q;
			else{
				int nq=++tot;hz[nq].len=hz[p].len+1;mi[nq]=N+10;
				hz[nq].father=hz[q].father;
				hz[q].father=hz[cur].father=nq;
				memcpy(hz[nq].son,hz[q].son,sizeof(hz[q].son));
				while(p!=-1&&hz[p].son[cha]==q){
					hz[p].son[cha]=nq;;
					p=hz[p].father;
				}
			}
		}
		last=cur;
	}
	void dfs(int u){
		for(int v:E[u]){
			dfs(v);
			mi[u]=min(mi[u],mi[v]);
			siz[u]+=siz[v];
		}
	}
	int sol(){
		for(int i=1;i<=tot;i++)E[hz[i].father].push_back(i);
		// for(int i=0;i<=tot;i++)cout<<mi[i]<<" ";cout<<endl;
		dfs(0);
		int ans=n/2;
		for(int i=1;i<=tot;i++){
			if(siz[i]>=2&&mi[i]!=N+10){
				// if(hz[i].len+(n-mi[i])/2==28)cout<<hz[i].len<<" "<<mi[i]<<endl;
				ans=max(ans,hz[i].len+(n-mi[i])/2);
			}
		}
		return ans;
	}
}
char ch[N];
void sol(){
	SAM::init();
	scanf("%s",ch+1);n=strlen(ch+1);
	for(int i=1;i<=n;i++)SAM::insert(ch[i],i);
	printf("%d\n",SAM::sol());
}
signed main(){
	int t;cin>>t;
	while(t--)sol();
	return 0;
}

詳細信息

Test #1:

score: 5
Accepted
time: 0ms
memory: 29400kb

input:

5
wwgpdvdwwgpdvdwwgpdvdwwwvdwdww
imeoqomeomqomeommeoqomeomqomem
blmjcxblmjcxlmjlmjcxjcxblmjcxl
exzhdyzhddyzhdedyzhyzhddydyyzd
tsbosqtsbosqtsbossbosqtssqtsbb

output:

23
21
18
15
20

result:

ok 5 lines

Test #2:

score: 5
Accepted
time: 0ms
memory: 29692kb

input:

5
rmgmlkgmlkllklmlkgmgmlklklmlkm
fstnttfttfnttfttfttfttfttttftt
hxiykziykzixiykziyykzixiyiyyky
fbtnfwbtnffwbfbtnfwbtnffwwbtnw
yhdizazyhdidihdidihdizzazyyhdi

output:

17
17
18
21
17

result:

ok 5 lines

Test #3:

score: 5
Accepted
time: 7ms
memory: 29784kb

input:

4
skjnitkwybtcsfagbpslfxtijbwjqvskibxqwjmukwybtcsfagbbpslfxtijbwjqvskibxqwjmukwybtcsfagbpslfxtijbwjqvskibxqwjmukwybtcsfagbbpslfxtijbwjqvskibxqwjmukwybtcsfagbbpslukwybtcsfagbbpslfxtijbbbpslukwybtcsfaslfc
ssrpyzpwiydtayxmoddtqksdrhcavtsonldnmujuyzpwiydtayxmoddtqksdrhcavtsoniydtayxmoddtqksdrhwiydtayxmo...

output:

137
112
121
112

result:

ok 4 lines

Test #4:

score: 5
Accepted
time: 2ms
memory: 30744kb

input:

4
oupltnlcbcgntpnkbvktcbcpltnlcbcgpltnlcgpltngntpnlcbcgntpnkbvktcbcpltnlcbcgpltnlnlcbcgpltnlcgpltngntpnlcbcgntpnktngntpnlcbcgntpnkbvktcbcpltnlcbcgpltnlnlcbcgpltnlcgpltngntpnlcbcgntpnlcbcgntlcbcgntpnkbvn
nzmyzhhsoehahmorxpahsoehahmororxpahsoehahmhsoehahmmyzhhsoehahmhahsoehahmororxpahsoehahmhsoehahmmy...

output:

114
130
117
113

result:

ok 4 lines

Test #5:

score: 5
Accepted
time: 7ms
memory: 30472kb

input:

4
wwsqbwicfggaflmvdvegdkclrnybwwsqbwicfggafgdkclrnyaflmvdvegdkclrnybwwsqbwlrnybwwsqbwicfggafgdkclrnyaflmvdvegdkclrnybwwegdknybwwsqybwwsqbwlrnybwwsqbwicfggafgdkclrnyaflmvdvegdkclrnybqbwicfggafgdkclrnyafg
tgloxggsznuxqxggszxggszsznuxqxggszxggszggsznuxqxggsggsznuxqxggszxggszsznuxqxggszxggszggsznuxqxggs...

output:

111
120
112
106

result:

ok 4 lines

Test #6:

score: 5
Accepted
time: 0ms
memory: 31000kb

input:

3
ikcblmcsjillvojwymeimbaeipbhobwwnyaakcsvkghhusduehctjexrtaakewiruishkmewsleodhikrnfaternerxiqhamqutaiazbldrrmaddpidimwxsqwbgedswzowhovibaauncxsthwdvudokzpsfulbtbaapxlexrtaakewiruishkmewsleodhikrnfaternerxiqhamqutaiazbldrrmaddpidimwxsqwbgedswzowhovibaauncxsthwdvudokzpsfulbtbaapxlidimwxsqwbgedswzowh...

output:

638
610
568

result:

ok 3 lines

Test #7:

score: 5
Accepted
time: 0ms
memory: 29996kb

input:

3
gsxasrisfpretvfhxlwnysaarwkvizqrrntjecdltvqmsvvqgsdgkggdcszmtrfkfzwldzxnysgsxasrisfpretvfhxlwgsxasrisfpretvfhqrrntjecdltvqmsvvqgsdgkggdcszmtrfkfzwarwkvizqrrntjecdltvqmsvvqgsdgkggdcszmtrfkfzwldzxnysgsxasrisfpretvjecdltvqmsvvqgsdgkggdcszmtrfkfzwldzxnfkfzwldzxnysgsxasrisfpretvjecdltvqmsvvqgsdgkggdcsz...

output:

582
591
547

result:

ok 3 lines

Test #8:

score: 5
Accepted
time: 0ms
memory: 31368kb

input:

3
aekaabidsppfvwzguexdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjcqqcxdmycjcqqycjcqevwzguexdmycjcqqcxdmyabidsppfvwzguexdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjcqqcxdmycjcqqycjcqezguexdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjcqqcxdmycjcqqycjcqevwzguexdmycjcqqcxdmyxdmycjcqqcxdmycjcqqycjcqexdmycjcqqcxdmycjc...

output:

539
563
520

result:

ok 3 lines

Test #9:

score: 5
Accepted
time: 266ms
memory: 108200kb

input:

4
fqbsybwtrauafctwxtzxmhmelxssvxxapauncqgvqcwxfptcktzyanenlxfguejjhdzjufgmicmptfrfasgcgkqrjxzfcipjoqukvawffkuaqniqgotoylhiignmrevhwrruupzzawbqljitxdhyooixxxlqejxaaouufwvfuzxhigbilkiazqzypkovtnwwbssiqookpnsxvvhhfpjghkezwuushsoilgtbwholuilqdszikiptsvuoqpgxhwisfbwbkkpesawxuvhgfycxuwoklwjvtrpaulbexqlrsh...

output:

187457
187894
187356
187301

result:

ok 4 lines

Test #10:

score: 5
Accepted
time: 128ms
memory: 52680kb

input:

105
iiqnrmmdztbfxwmieuflzvuqveboseucomrfagkbzohyktiqnnbpkyhgciuwoqacerjgxthwjqxtkfjzvnqfnxlpfhnvznxfeglecvcllzhxhszcfphsnvjuewqelnlswxwauylfaufhnejutsngnybuxtaiglaekyeexsmxmrezvpuohjxxjatgttrbetirsmvrehqtawuvlqmuzltllmtgfmjmgrdagytkijfkfagsqumsfidsuyyclhotbrvhrotbzzmgbuyromlvuqnrpntauhvxaqereyvfzjla...

output:

5001
5001
5001
5001
50001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5002
5001
5001
5001
5001
5001
50001
5001
5001
5001
5002
5001
5001
5001
5001
5002
5001
50001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
5001
50...

result:

ok 105 lines

Test #11:

score: 0
Wrong Answer
time: 226ms
memory: 124804kb

input:

1000001
s
o
k
g
r
z
l
d
z
i
n
u
d
j
i
o
k
b
o
s
h
y
w
y
u
k
v
p
d
f
e
x
v
q
d
o
p
r
s
o
z
f
i
e
r
q
s
b
u
i
w
b
g
u
b
a
e
w
p
j
e
v
g
z
l
l
o
c
c
i
q
b
n
b
h
g
t
z
i
p
h
e
s
q
a
u
s
e
s
i
n
w
f
t
y
t
g
o
v
j
w
o
m
l
r
u
s
k
t
c
c
d
i
u
t
i
q
l
m
j
v
b
f
d
w
f
w
c
t
r
l
p
h
y
b
y
u
v
l
n
x
n
s
f
j
n
...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

wrong answer 825258th lines differ - expected: '250001', found: '250007'

Test #12:

score: 5
Accepted
time: 24ms
memory: 37540kb

input:

110
rxxioshkbndigoxntdcejhvoskbndigoxntdcejgoxntdcejhvoskbndigoxbndigoxntdcejhvoskbndigoxntdccejhvoskbndigogoxntdcejgoxntdcejhvoskbndigoxbnejgoxntdcejhvoskbndigoxbndigoxntdcejhvoskbndigoxntdccejhvoskbndigogoxntdcejgoxntdcejhvosxntdcejhvoskbndigoxbndigoxntdcejhvoskbndigoxntdccejhvoskbndigogoxntdcejgo...

output:

629
577
663
560
622
537
11746
11759
625
966
595
537
989
567
539
544
578
562
536
600
572
521
19986
979
952
597
632
957
552
605
980
535
566
559
963
12740
629
548
571
988
641
14356
558
571
598
982
539
645
580
586
967
995
966
597
623
961
589
988
594
582
638
606
11243
954
604
558
588
579
559
627
547
590
...

result:

ok 110 lines

Test #13:

score: 5
Accepted
time: 31ms
memory: 44500kb

input:

105
jlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizovzbjlugzbdizo...

output:

993
674
578
520
563
621
39987
623
562
551
650
631
541
598
976
663
578
600
984
556
652
996
560
596
672
964
684
972
613
990
596
551
39989
592
579
552
971
587
958
976
640
641
650
967
997
570
591
523
644
571
951
598
645
601
670
556
536
663
596
719
26336
581
618
658
544
662
22008
633
979
540
677
539
965
...

result:

ok 105 lines

Test #14:

score: 5
Accepted
time: 45ms
memory: 54872kb

input:

5
xsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmnxsolriymnoxsmn...

output:

59993
31805
31649
59999
35053

result:

ok 5 lines

Test #15:

score: 5
Accepted
time: 20ms
memory: 34300kb

input:

30
qqgcvqshumzfapruaztsztbkdhknlqmegsgekylgmkmobfjceeuezxqcebpqrduyxccjcpqqbefdlqfpubvvymxfnovetrestidxxvnbzsekilcemxbmjaryqofjfjdashxrclsefyqqjswxsykbydcrshczqgaknzermwvsvmkgegeygqahteynlandipovosnbqkvnwfudnabuqddlhbzsdowmfmjtgywwjtmhaikoimkapplzsmrxcpjhdvdjtbievwmxewlokxocobbgoueqkpypkdzgejmzfyxjx...

output:

5409
6422
9965
6171
9985
5656
6137
9965
5246
5788
6213
5511
9988
9994
9991
6384
9982
6431
9993
5763
6489
5902
5343
5847
5849
6573
5863
5737
6460
6527

result:

ok 30 lines

Test #16:

score: 0
Wrong Answer
time: 411ms
memory: 187416kb

input:

3
pounzdtkokaonqyllykjhhycqxdmmwndkjqlnlxbwzqlpqwcpjnysncilfxzdkenuwbjhakfacsptrukajksxnbksyjykplglopupccpgugzlcllmwgjjhtdhebttpcgfrcuvelczudmyrakngvypqdyufrpwtxbnaykelodhusglsqayoypebnzigqgcokrokbuvsadmsjzkbzkpzzucovnwltyzdrpnvmlnmqbezaqazcsybmcrhpnsjouofleczrplhqrgqhirjarmoudvjtqsjmjqzptzgimnbetrl...

output:

353223
364339
326753

result:

wrong answer 1st lines differ - expected: '283790', found: '353223'

Test #17:

score: 5
Accepted
time: 188ms
memory: 112272kb

input:

36
bqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrgxpbqsaqunccgyiarpeaezrg...

output:

49988
10658
28088
11977
49994
11321
13086
49974
12836
31204
11573
30769
29147
10648
12611
11999
49983
499970
13419
11724
19956
19953
29731
11345
12438
12680
19973
12970
19992
19986
30847
11087
10522
11308
10609
12006

result:

ok 36 lines

Test #18:

score: 0
Wrong Answer
time: 254ms
memory: 174420kb

input:

36
ueuhiuuxbkqmcjrkbkknbuogliigucooglvofroicgveqoqtacgcwukjfuszwgpermvydlhfreljsdcuhkwdfgpmbhlznaefmbfrmmzdsmpmqrhxcddjmsvpziookuvyvbpjpqnideuvvbuzhxktrhkspahzvczsdpcvfrdkvxfszauizebrmljdlsfixedavhxbyalvyrpztjhsqkleljsdcuhkwdfgpfreljsdcuhkwdfgpmbhlznaefmbfrmmzdsmpmqrhxcddjmsvpziookuvyvbpjpqnideuvvbu...

output:

11223
11643
12012
19963
12651
31459
14468
28087
33112
19974
19950
19997
49982
49993
13154
19962
337914
10927
49970
12457
29707
26432
11485
11694
19977
12699
13358
19973
10948
11629
29009
19964
27385
12772
11344
10920

result:

wrong answer 17th lines differ - expected: '277645', found: '337914'

Test #19:

score: 0
Wrong Answer
time: 153ms
memory: 118104kb

input:

400001
ggg
eee
hhh
ppp
eee
nnn
hhh
aaa
nnn
uuu
xxx
ddd
ttt
sss
jjj
fff
ccc
ddd
aaa
xxx
vvv
mmm
qqq
bbb
qqq
uuu
bbb
ggg
mmm
qqq
ccc
hhh
nnn
yyy
hhh
qqq
fff
www
xxx
uuu
iii
ggg
nnn
rrr
sss
aaa
eee
vvv
iii
eee
vvv
www
qqq
ddd
qqq
rrr
qqq
xxx
ppp
yyy
nnn
bbb
uuu
bbb
yyy
aaa
ttt
www
mmm
lll
qqq
ggg
zzz
b...

output:

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
...

result:

wrong answer 340842nd lines differ - expected: '184400', found: '184398'

Test #20:

score: 0
Wrong Answer
time: 353ms
memory: 184112kb

input:

27
xtahmwzugvrelqyihbryeggyvqgliwxirxrdvtxbopgahekrhbpnixmfpuryqqiipznksnljetllzvehwvugsimiffivvsfktvumihxmdixcdelbziiuquevzotugagzvcndjkposprxtczumhoddsacivyowgqridxtqmikdbiyfhtsqhxtczxkvxbtfrknwjiowszbthabqtticsbgratmzufenstlbbczubdpkdqcylkcdnjvnejoarsplnaoocqkftcpwstwgdyjqhgfnstnjncuafkrhadptfgra...

output:

12118
12260
19991
11406
13637
19972
19986
11246
12946
19984
11974
12449
12283
12022
12063
358294
11398
10957
11564
350282
12088
19972
11514
11971
11448
11649
12875

result:

wrong answer 16th lines differ - expected: '300783', found: '358294'