QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#431049#8639. 消除Kevin5307100 ✓58ms66956kbC++231.3kb2024-06-04 20:19:592024-06-04 20:19:59

Judging History

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

  • [2024-06-04 20:19:59]
  • 评测
  • 测评结果:100
  • 用时:58ms
  • 内存:66956kb
  • [2024-06-04 20:19:59]
  • 提交

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);}
const ll mod=998244353;
void upd(ll &a,ll b){a=(a+b)%mod;}
string s;
int n;
ll dp[1001000][2][2][2];
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>s;
	dp[0][0][0][0]=1;
	for(int i=0;i<n;i++)
	{
		for(int a=0;a<2;a++)
			for(int b=0;b<2;b++)
				for(int c=0;c<2;c++)
				{
					upd(dp[i+1][a][b][c],dp[i][a][b][c]);
					for(int x=0;x<2;x++)
						if(s[i]=='?'||(s[i]==x+48))
							upd(dp[i+1][a^1][x][c|(a==0&&b==0&&x==1)],dp[i][a][b][c]);
				}
	}
	ll ans=0;
	for(int b=0;b<2;b++)
		for(int c=0;c<2;c++)
			if(!b||c)
				upd(ans,dp[n][0][b][c]);
	cout<<ans<<endl;
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

8
????????

output:

2764

result:

ok 1 number(s): "2764"

Test #2:

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

input:

8
100?011?

output:

240

result:

ok 1 number(s): "240"

Test #3:

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

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: 0ms
memory: 3988kb

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: 1ms
memory: 4012kb

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: 4004kb

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: 0ms
memory: 3992kb

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: 4052kb

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: 3916kb

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: 3972kb

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: 34ms
memory: 66956kb

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: 51ms
memory: 66880kb

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: 41ms
memory: 66920kb

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: 58ms
memory: 66872kb

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: 50ms
memory: 66924kb

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: 45ms
memory: 66780kb

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: 43ms
memory: 66868kb

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: 37ms
memory: 66876kb

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: 49ms
memory: 66876kb

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: 32ms
memory: 66896kb

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"