QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#409127#8639. 消除zhouhuanyi100 ✓85ms129948kbC++141.0kb2024-05-11 19:22:462024-05-11 19:22:48

Judging History

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

  • [2024-05-11 19:22:48]
  • 评测
  • 测评结果:100
  • 用时:85ms
  • 内存:129948kb
  • [2024-05-11 19:22:46]
  • 提交

answer

#include<iostream>
#include<cstdio>
#define N 1000000
#define mod 998244353
using namespace std;
int read()
{
	char c=0;
	int sum=0;
	while (c<'0'||c>'9') c=getchar();
	while ('0'<=c&&c<='9') sum=sum*10+c-'0',c=getchar();
	return sum;
}
void Adder(int &x,int d)
{
	x+=d;
	if (x>=mod) x-=mod;
	return;
}
int n,ans,tr[1<<4][2],dp[N+1][1<<4][2];
char c[N+1];
int main()
{
	int d;
	for (int i=0;i<(1<<4);++i)
	{
		d=0;
		if (i&1) d|=2;
		if (i&2) d|=4;
		if (i&4) d|=2;
		tr[i][0]=d,d=0;
		if (i&2) d|=9;
		if (i&8) d|=2;
		tr[i][1]=d;
	}
	n=read(),dp[0][1][0]=1;
	for (int i=1;i<=n;++i)
	{
		cin>>c[i];
		for (int j=0;j<(1<<4);++j)
			for (int opt=0;opt<=1;++opt)
				dp[i][j][opt]=dp[i-1][j][opt];
		for (int op=0;op<=1;++op)
		{
			if (c[i]-'0'==(op^1)) continue;
			for (int j=0;j<(1<<4);++j)
				for (int opt=0;opt<=1;++opt)
					Adder(dp[i][tr[j][op]][opt],dp[i-1][j][opt^1]);
		}
	}
	for (int i=0;i<(1<<4);++i)
		if (!(i&1))
			Adder(ans,dp[n][i][0]);
	Adder(ans,1),printf("%d\n",ans);
	return 0;
}

详细

Test #1:

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

input:

8
????????

output:

2764

result:

ok 1 number(s): "2764"

Test #2:

score: 5
Accepted
time: 1ms
memory: 5916kb

input:

8
100?011?

output:

240

result:

ok 1 number(s): "240"

Test #3:

score: 5
Accepted
time: 1ms
memory: 6320kb

input:

4997
??????1???????????????????1????????????????????????????????????????0?????????01???0????????????????????????1??1?????0???1?1????????????0????0?????????????????????????????0???0??????????0?????1100????0??1???????????1????????????????????????1??000??????????????????????????????0????????????0?????1...

output:

481706525

result:

ok 1 number(s): "481706525"

Test #4:

score: 5
Accepted
time: 1ms
memory: 5972kb

input:

4999
011???1011?10?1?00010?10??01?010?00?0?0??0100?010001001???10??00000110001?0??010??10??0?0??0?00??11001011011??11?11?1?11?1???0?1?1??0?1?00100?1011001111101011?101001?0???000?11111010?0010?0000?1111000?01?10???0?1001?1?11????010?1?0?0??10111?1?011??0111111?00???0??0?111??10???0???0?1?00010?1?010...

output:

927141779

result:

ok 1 number(s): "927141779"

Test #5:

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

input:

4998
?1?1???1???0???1???1?1????????0???????????????????????????0??????????????????????10???????????????????????0??1???????0??0???????1???????1?10?????????????????0?0???????00?1?????0???????????0????????0???????????1??1?????0???????????????????????????????0??????????1?????????????????????????????????...

output:

527991571

result:

ok 1 number(s): "527991571"

Test #6:

score: 5
Accepted
time: 1ms
memory: 6140kb

input:

5000
100?011?00101?0?010?010110??1000?1?01111?0?1?011?11011???101?11?0?110?10?0?01011??10?01??10100?0?0???00?10??11011111?001101?000?00000101?0?01?10?11111110?11?1?01?1?11?01??111?10?101??11011?0?100?11?01100?1???10?1010?110110110011???0?00000??1?111?0001??101?0?10?111?0?00?0?0?011?111111?0000?1010?...

output:

775395392

result:

ok 1 number(s): "775395392"

Test #7:

score: 5
Accepted
time: 1ms
memory: 5920kb

input:

4997
??????1???????????????????1????????????????????????????????????????0?????????01???0????????????????????????1??1?????0???1?1????????????0????0?????????????????????????????0???0??????????0?????1100????0??1???????????1????????????????????????1??000??????????????????????????????0????????????0?????1...

output:

481706525

result:

ok 1 number(s): "481706525"

Test #8:

score: 5
Accepted
time: 1ms
memory: 6224kb

input:

5000
100?011?00101?0?010?010110??1000?1?01111?0?1?011?11011???101?11?0?110?10?0?01011??10?01??10100?0?0???00?10??11011111?001101?000?00000101?0?01?10?11111110?11?1?01?1?11?01??111?10?101??11011?0?100?11?01100?1???10?1010?110110110011???0?00000??1?111?0001??101?0?10?111?0?00?0?0?011?111111?0000?1010?...

output:

775395392

result:

ok 1 number(s): "775395392"

Test #9:

score: 5
Accepted
time: 1ms
memory: 6240kb

input:

4999
?1?1???1???0???1???1?1????????0???????????????????????????0??????????????????????10???????????????????????0??1???????0??0???????1???????1?10?????????????????0?0???????00?1?????0???????????0????????0???????????1??1?????0???????????????????????????????0??????????1?????????????????????????????????...

output:

356481180

result:

ok 1 number(s): "356481180"

Test #10:

score: 5
Accepted
time: 1ms
memory: 5908kb

input:

4998
011???1011?10?1?00010?10??01?010?00?0?0??0100?010001001???10??00000110001?0??010??10??0?0??0?00??11001011011??11?11?1?11?1???0?1?1??0?1?00100?1011001111101011?101001?0???000?11111010?0010?0000?1111000?01?10???0?1001?1?11????010?1?0?0??10111?1?011??0111111?00???0??0?111??10???0???0?1?00010?1?010...

output:

300686604

result:

ok 1 number(s): "300686604"

Test #11:

score: 5
Accepted
time: 74ms
memory: 129768kb

input:

999996
????1??100??????????1?1??????????????????????????????1???????????1?1??????1?????0???????????????10????????????1????????????????????????????????0????????0??1??????????????????????0???1100??01????1????????????????0?0???0???????????????????????1?1???????0???1????????????????0???????????????????1...

output:

775312388

result:

ok 1 number(s): "775312388"

Test #12:

score: 5
Accepted
time: 72ms
memory: 129824kb

input:

999999
01?1??1?1??0000111?1?0???1000011?10?1?1??10010???10?011????0?1?000??0110??10?00?0111000001100001100?1?001111?1??1101???01101?101?010011??01??0?1?00?0??1010101?0?11??01?111111010011011?0100000?10010?0?0?10??1??001??00100?0??1?0?00001?11??1111001?0110?111??1????0?11?00110000110?000011?0??0?100?...

output:

240432497

result:

ok 1 number(s): "240432497"

Test #13:

score: 5
Accepted
time: 85ms
memory: 129828kb

input:

999998
???????????0????10??1?????????1???????????????????????1??????1????0?????10????????0??0???0?1??????0???1?????1???0???????????0???????11??????????1????0?????????0????0???????0????01?0?????????????0???????10??????1????????1??1?0?1??????????????1????????????1?1????????????????????????????????????...

output:

447215377

result:

ok 1 number(s): "447215377"

Test #14:

score: 5
Accepted
time: 76ms
memory: 129948kb

input:

999998
01?1??1?1??0000111?1?0???1000011?10?1?1??10010???10?011????0?1?000??0110??10?00?0111000001100001100?1?001111?1??1101???01101?101?010011??01??0?1?00?0??1010101?0?11??01?111111010011011?0100000?10010?0?0?10??1??001??00100?0??1?0?00001?11??1111001?0110?111??1????0?11?00110000110?000011?0??0?100?...

output:

149098020

result:

ok 1 number(s): "149098020"

Test #15:

score: 5
Accepted
time: 73ms
memory: 129828kb

input:

1000000
?????0????????11???0???1?????1??????0???????0?1??101???????????0????????????????????1?????????????0?????????????????1????????????????1???????1????????????????0????????????????????????????????00????????1???1???????10????1???10?1?????1?????????????0?1??0?????0????????????????1??????????0??????...

output:

934928332

result:

ok 1 number(s): "934928332"

Test #16:

score: 5
Accepted
time: 84ms
memory: 129892kb

input:

999996
10????11?0??1?010??1?1?101??111?111?0100??00?0??01?0??11101?0???0111??1???1?0011?11?00011?1?101??01?00??011011?1?0?1000?0?1??1???10?101?1100????0?0??11?11?1??11111?100010011011?10?00?11?01110?010??10110???1?10?11?1010000?000?10??01?11?001?1?0????11011?0?001001010?01?1????11?0101??0?01010111?1...

output:

859594688

result:

ok 1 number(s): "859594688"

Test #17:

score: 5
Accepted
time: 78ms
memory: 129916kb

input:

999997
????1??100??????????1?1??????????????????????????????1???????????1?1??????1?????0???????????????10????????????1????????????????????????????????0????????0??1??????????????????????0???1100??01????1????????????????0?0???0???????????????????????1?1???????0???1????????????????0???????????????????1...

output:

77832459

result:

ok 1 number(s): "77832459"

Test #18:

score: 5
Accepted
time: 77ms
memory: 129772kb

input:

999999
0000110000100?0?1000?100001?100?11?00?111?11?100?0110??001???110?0000111?0?111?01?01?00?10111??1011000??0?110?0010?10?001?????1?000110010011?1?1???0?011011?10?1000?1?1???1?110110111101??10?000100??1??11100?1?000111?101????010010?1010?100??0?00??01??00101?1?1110?00011011111101?1?1??001010?0?01...

output:

853633847

result:

ok 1 number(s): "853633847"

Test #19:

score: 5
Accepted
time: 81ms
memory: 129948kb

input:

1000000
?????0????????11???0???1?????1??????0???????0?1??101???????????0????????????????????1?????????????0?????????????????1????????????????1???????1????????????????0????????????????????????????????00????????1???1???????10????1???10?1?????1?????????????0?1??0?????0????????????????1??????????0??????...

output:

934928332

result:

ok 1 number(s): "934928332"

Test #20:

score: 5
Accepted
time: 70ms
memory: 129780kb

input:

999999
0000110000100?0?1000?100001?100?11?00?111?11?100?0110??001???110?0000111?0?111?01?01?00?10111??1011000??0?110?0010?10?001?????1?000110010011?1?1???0?011011?10?1000?1?1???1?110110111101??10?000100??1??11100?1?000111?101????010010?1010?100??0?00??01??00101?1?1110?00011011111101?1?1??001010?0?01...

output:

853633847

result:

ok 1 number(s): "853633847"