QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#481657#5501. Ctrl+C Ctrl+VUESTC_DECAYALI#AC ✓167ms67300kbC++17844b2024-07-17 12:28:212024-07-17 12:28:22

Judging History

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

  • [2024-07-17 12:28:22]
  • 评测
  • 测评结果:AC
  • 用时:167ms
  • 内存:67300kb
  • [2024-07-17 12:28:21]
  • 提交

answer

#include<cstdio>
#include<iostream>
#include<cstring>
#define RI register int
#define CI const int&
using namespace std;
const int N=1e6+5,INF=1e9;
int t,f[N][1<<4]; char s[N];
int main()
{
	for (scanf("%d",&t);t;--t)
	{
		RI i,j,k; scanf("%s",s+1); int n=strlen(s+1);
		if (n<=3) { puts("0"); continue; }
		for (i=1;i<=n;++i) for (j=0;j<16;++j) f[i][j]=INF;
		for (j=0;j<16;++j) f[4][j]=__builtin_popcount(j);
		if (s[1]=='a'&&s[2]=='n'&&s[3]=='i'&&s[4]=='a') f[4][0]=INF;
		for (i=4;i<n;++i) for (j=0;j<16;++j) if (f[i][j]!=INF)
		{
			for (k=0;k<2;++k)
			{
				int mask=((j<<1)&15)|k;
				if (mask==0&&s[i-2]=='a'&&s[i-1]=='n'&&s[i]=='i'&&s[i+1]=='a') continue;
				f[i+1][mask]=min(f[i+1][mask],f[i][j]+k);
			}
		}
		int ans=INF; for (j=0;j<16;++j) ans=min(ans,f[n][j]);
		printf("%d\n",ans);
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 4124kb

input:

3
aniasieurodzilaapotemnicsieniedzialo
nicciekawegouanianiagnieszkianialicji
jeszczekrotszaautobiografiaani

output:

1
2
0

result:

ok 3 lines

Test #2:

score: 0
Accepted
time: 84ms
memory: 3868kb

input:

10000
aniaanianianianiaviananibnianianianianianiapianianianianianianiaanianianianiananianianianiananifw
ananiacnganiaaywbwrkaniahaniaganiaglljaniaouaqrdyaniaypvsgjltrbcvjssrtnehqfzpfvaniahwaniauzncovwfmiqejteiuaniacblxyfikauptesitsitvananianiajndy
anianianianianianiaanianianianianiaanianianianianiaa...

output:

13
11
53
16
10
13
35
2
39
7
19
14
47
7
78
34
59
60
21
13
22
18
18
9
77
3
19
14
44
64
18
26
14
4
27
38
9
65
13
27
51
23
3
13
26
69
5
20
32
23
22
13
29
2
23
2
18
21
68
50
21
9
5
6
21
22
77
1
60
54
8
19
51
13
6
18
70
18
22
19
20
4
74
17
26
8
19
78
11
28
72
8
45
21
23
21
15
54
65
14
2
9
10
5
33
78
0
30
...

result:

ok 10000 lines

Test #3:

score: 0
Accepted
time: 163ms
memory: 6784kb

input:

335
ananianianianianianianianianianianianianianianianianianianianianianianianianianiaanianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianianiananianianianianianianianiananianianianianianianianianianianianianianianianianianianianianianianiania...

output:

3075
476
650
443
510
2446
624
560
2256
679
3138
361
512
300
484
1726
659
559
1887
381
3048
700
507
2769
2688
615
706
631
3009
367
516
535
3150
1759
418
489
1738
2676
497
666
655
2391
547
405
677
2189
492
465
413
2008
2477
2125
2586
1788
439
2765
2781
667
279
294
523
654
414
2126
2156
2175
1855
3135
...

result:

ok 335 lines

Test #4:

score: 0
Accepted
time: 167ms
memory: 67300kb

input:

5
aanninaiiiiiaaaaaiiniaaiaaanniiaaaiiiainainananinannnaiaiiainnianaainaaiaanannnnnniaiaiainanaaniaaaainaaanaanianiininiaiiaaaaaainaniinaininniiiinaaaannnananniianaananiainiiiniinninnnainaiiiaanaananinaininiiaaanaiiininnanannannnnaiaaaniiaaniaaanaaaiinianniaiiaiinaannaanniiaininaiianaiiiniinaaiiania...

output:

15253
17190
166607
49472
166658

result:

ok 5 lines