Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
35873 | baka24 | 2021北京队选拔模拟赛0-B | C++ | 运行超时 | 70 | 1000 MS | 1584 KB | 873 | 2025-01-07 19:03:30 |
#include<bits/stdc++.h> using namespace std; #define int unsigned int int read(){int 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*10+c-'0',c=getchar();return x*f;} const int MAXN=100010; int n,m,a[MAXN],f[MAXN],g[MAXN],as[MAXN]; char c[MAXN]; void slv(){ c[++n]=getchar(); while(c[n]=='0'||c[n]=='1')c[++n]=getchar(); n--; for(int i=1;i<=n;i++)if(c[i]=='1')a[++m]=i; g[0]=f[0]=1; for(int i=1;i<=n;i++){ for(int k=1;k<=m&&a[k]<=i;k++)f[i]+=g[i-a[k]]; for(int j=0;j<=i-j;j++){ int L=f[j],R=f[i-j]; if(j!=i-j)g[i]+=L*R; else g[i]+=L*(R+1)>>1; } } for(int i=1;i<=n;i++)printf("%d",f[i]&1); } signed main(){ // freopen("modtwo.in","r",stdin);freopen("modtwo.out","w",stdout); slv(); return 0; }