QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#483288#7368. 抄写yb13558h10 31ms135364kbC++14918b2024-07-18 15:05:042024-07-18 15:05:04

Judging History

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

  • [2024-07-18 15:05:04]
  • 评测
  • 测评结果:10
  • 用时:31ms
  • 内存:135364kb
  • [2024-07-18 15:05:04]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int n,C,cst[26];
int ch[1100000][26],f[1100000],g[1100000],len[1100000],tot;
long long pre[1100000],val[1100000],maxx;
char s[1100000];
int getf(int p,int i){
	while(i-len[p]-1==0||s[i-len[p]-1]!=s[i])p=f[p];
	return p;
}
int getg(int p,int i,int l){
	while(i-len[p]-1==0||s[i-len[p]-1]!=s[i]||len[p]>l)p=f[p];
	return p;
}
int main(){
	scanf("%d%d",&n,&C),s[0]='&';
	for(int i=0;i<26;i++)scanf("%d",&cst[i]);
	scanf("%s",s+1),len[tot=1]=-1,f[0]=1;
	for(int i=1,p=0;i<=n;i++){
		int c=s[i]-'a';
		pre[i]=pre[i-1]+cst[c],p=getf(p,i);
		if(!ch[p][c]){
			f[++tot]=ch[getf(f[p],i)][c];
			len[tot]=len[p]+2;
			g[tot]=ch[getg(g[p],i,(len[tot]+1)/2)][c];
			ch[p][c]=tot;
		}
		p=ch[p][c],val[i]=val[i-1]+cst[c];
		if(len[p]!=1)val[i]=min(val[i],val[i-len[p]+len[g[p]]]+pre[i-(len[p]/2)]-pre[i-len[p]+len[g[p]]]+C);
	}
	printf("%lld\n",val[n]);
}

详细

Test #1:

score: 10
Accepted
time: 1ms
memory: 8088kb

input:

10 920
316 915 331 834 181 122 238 511 910 632 652 717 369 468 866 140 89 183 83 376 257 670 127 643 983 105
xaaxrdtjqv

output:

4663

result:

ok single line: '4663'

Test #2:

score: 0
Wrong Answer
time: 1ms
memory: 7980kb

input:

659 423
752 190 254 128 821 695 798 216 809 606 970 45 830 149 247 662 348 883 122 310 519 81 420 407 854 141
tttttttttttttttttttttttttttccccccccccqqqqqqqqqqdddddddddddbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssoooooooooooooooooooooo...

output:

-552

result:

wrong answer 1st lines differ - expected: '39639', found: '-552'

Test #3:

score: 0
Wrong Answer
time: 1ms
memory: 8096kb

input:

1000 82508
77548 11366 41959 92623 12754 24025 69335 82809 10717 2487 20842 21597 79490 55616 4586 81371 61068 60639 38689 99285 67058 4417 48118 92298 48938 46998
fswgxhmntgjmxddxuxddxmjgtnmhxgwuwgxhmntgjmxddxuxddxmjgtnmhxgwuwgxhmntgjmxddxuxddxmjgtnmhxgwuwgxhmntgjmxddxuxddxmjgtnmhxgwuwgxhmntgjmxddx...

output:

5841087

result:

wrong answer 1st lines differ - expected: '5152476', found: '5841087'

Test #4:

score: 0
Wrong Answer
time: 1ms
memory: 8160kb

input:

1000 81447
73552 15604 67150 50813 61186 62462 95570 13768 1915 12710 9768 10234 73803 67198 83028 62207 7498 72453 18426 76800 20581 66504 49434 7136 9199 40151
jdxxltlxxdjtjdxxltuhsbscjqqgdoyodgqqjcsbshuyuhsbscjqqgdoyodgqqjcsbshuyuhsbscjqqgdoyodgqqjcsbshuyuhsbscjqqgdoyodgqqjcsbshuyuhsbscjqqgdoyodg...

output:

4332281

result:

wrong answer 1st lines differ - expected: '4700857', found: '4332281'

Test #5:

score: 0
Wrong Answer
time: 4ms
memory: 24004kb

input:

97366 425
238 96 326 413 643 743 806 601 213 8 229 585 852 183 887 272 137 891 480 337 135 411 265 906 807 382
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss...

output:

-72555

result:

wrong answer 1st lines differ - expected: '82531', found: '-72555'

Test #6:

score: 0
Wrong Answer
time: 4ms
memory: 24040kb

input:

100000 33379
12170 1675 69834 14368 91570 82932 66141 88159 4220 35820 24836 1083 77102 4471 78735 61628 53746 58134 40036 49369 65424 60061 79771 76791 91398 8101
imqqzaazqqmiimqqzaazqqmiimqqzakuochddhcoukkuochddhcoukkuochddhcoukkuochddhcoukkuochddhcoukkuochddhcoukkuochddhcoukkuochddhcoukkuochddhco...

output:

7929241

result:

wrong answer 1st lines differ - expected: '8203706', found: '7929241'

Test #7:

score: 0
Wrong Answer
time: 4ms
memory: 22152kb

input:

100000 9107925
3181820 1305477 3152716 3739224 5572782 7916058 6479616 5154334 6622906 5541248 2719333 384761 3475969 4897963 6983868 175635 6509182 3008693 8373041 5777658 7480682 1658648 2725231 3311916 6180881 2740645
mjsgonduqaaqudnogsjmxiddixxiddixxiddixxiddixxiddixxiddixxiddixxiddixxiddixxiddi...

output:

864624715

result:

wrong answer 1st lines differ - expected: '933701481', found: '864624715'

Test #8:

score: 0
Wrong Answer
time: 8ms
memory: 128916kb

input:

940823 71
102 70 3 282 34 642 912 683 628 633 870 57 395 952 427 275 323 655 720 960 557 114 417 354 557 554
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...

output:

-139890

result:

wrong answer 1st lines differ - expected: '19337', found: '-139890'

Test #9:

score: 0
Wrong Answer
time: 31ms
memory: 134956kb

input:

1000000 80005
23657 44948 43486 12462 38795 28137 60947 38872 76125 27490 97511 91032 95028 17525 64016 68451 91721 63645 18338 55030 89004 15169 95322 26813 19323 44805
tccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttccttc...

output:

34665380

result:

wrong answer 1st lines differ - expected: '32904829', found: '34665380'

Test #10:

score: 0
Wrong Answer
time: 20ms
memory: 135364kb

input:

1000000 743705502
203355312 642593104 49509407 833553504 721765697 645923593 987676530 855140950 875859311 522957598 441082466 49068898 921312225 548185354 505533262 26737495 674175585 995483029 131477261 936989048 613365908 712282356 798743656 807929778 320579711 517544929
vhhvvhhvvhhvvhhvvhhvvhhvv...

output:

265026348658

result:

wrong answer 1st lines differ - expected: '317604809969', found: '265026348658'