QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#524273 | #8639. 消除 | nullptr_qwq | 100 ✓ | 62ms | 129988kb | C++20 | 2.1kb | 2024-08-19 14:53:12 | 2024-08-19 14:53:12 |
Judging History
answer
// 私は猫です
#include<bits/stdc++.h>
#define ull unsigned long long
#define ll long long
#define pb push_back
#define mkp make_pair
#define fi first
#define se second
#define inf 1000000000
#define infll 1000000000000000000ll
#define pii pair<int,int>
#define rep(i,a,b,c) for(int i=(a);i<=(b);i+=(c))
#define per(i,a,b,c) for(int i=(a);i>=(b);i-=(c))
#define F(i,a,b) for(int i=a,i##end=b;i<=i##end;i++)
#define dF(i,a,b) for(int i=a,i##end=b;i>=i##end;i--)
#define cmh(sjy) while(sjy--)
#define lowbit(x) (x&(-x))
#define HH printf("\n")
#define eb emplace_back
#define poly vector<int>
using namespace std;
ll read(){
ll x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();
return x*f;
}
const int mod=998244353,maxn=1100005;
inline int qpow(int x,ll y){
int rt=1;
for(;y;y>>=1,x=1ll*x*x%mod) if(y&1) rt=1ll*rt*x%mod;
return rt;
}
inline void inc(int &x,const int y){ x=(x+y>=mod)?(x+y-mod):(x+y); }
inline void dec(int &x,const int y){ x=(x>=y)?(x-y):(x+mod-y); }
inline void mul(int &x,const int y){ x=1ll*x*y%mod; }
inline int add(const int x,const int y){ return (x+y>=mod)?(x+y-mod):(x+y); }
inline int sub(const int x,const int y){ return (x>=y)?(x-y):(x+mod-y); }
inline int prod(const int x,const int y){ return 1ll*x*y%mod; }
inline void chkmax(int &x,const int y){ x=max(x,y); }
inline void chkmin(int &x,const int y){ x=min(x,y); }
int n,tr[20][2],f[maxn][16][2];
char str[maxn];
void solve(){
n=read(),f[0][1][0]=1;
F(s,0,15){
int val=0;
if((s&1)||(s&4))val|=2;
if(s&2)val|=4;
tr[s][0]=val;
}
F(s,0,15){
int val=0;
if(s&2)val|=9;
if(s&8)val|=2;
tr[s][1]=val;
}
scanf("%s",str+1);
F(i,1,n){
F(s,0,15)F(j,0,1)f[i][s][j]=f[i-1][s][j];
if(str[i]!='1') F(s,0,15)F(j,0,1)inc(f[i][tr[s][0]][j],f[i-1][s][j^1]);
if(str[i]!='0') F(s,0,15)F(j,0,1)inc(f[i][tr[s][1]][j],f[i-1][s][j^1]);
}
int ans=1;
F(s,0,15)if(!(s&1))inc(ans,f[n][s][0]);
printf("%d",ans);
}
signed main(){
int lpx=1;
F(____,1,lpx)solve();
}
詳細信息
Pretests
Final Tests
Test #1:
score: 5
Accepted
time: 0ms
memory: 3984kb
input:
8 ????????
output:
2764
result:
ok 1 number(s): "2764"
Test #2:
score: 5
Accepted
time: 1ms
memory: 5980kb
input:
8 100?011?
output:
240
result:
ok 1 number(s): "240"
Test #3:
score: 5
Accepted
time: 1ms
memory: 5964kb
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: 5980kb
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: 6020kb
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: 5904kb
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: 5780kb
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: 4552kb
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: 5912kb
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: 5836kb
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: 62ms
memory: 129716kb
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: 55ms
memory: 129920kb
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: 58ms
memory: 129920kb
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: 52ms
memory: 129816kb
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: 57ms
memory: 129888kb
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: 55ms
memory: 129872kb
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: 54ms
memory: 129760kb
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: 41ms
memory: 129988kb
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: 54ms
memory: 129852kb
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: 43ms
memory: 129848kb
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"