| 比赛 |
csp2025模拟练习3 |
评测结果 |
AAAAAAAAAAAATTTTTTTTTTTTT |
| 题目名称 |
Binaria |
最终得分 |
48 |
| 用户昵称 |
会挽弯弓满月 |
运行时间 |
39.314 s |
| 代码语言 |
C++ |
内存使用 |
20.48 MiB |
| 提交时间 |
2025-10-30 11:45:57 |
显示代码纯文本
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int N=1e6+10,mod=1e6+3;
int n,k,cnt;
int sum[N];
int s[N];
int ans;
void dfs(int x){
if(x>n){
ans=(ans+1)%mod;
return;
}
int l,r,num;
s[x]=s[x-1];
if(x>=k){
l=x-k+1;
r=l+k-1;
num=s[r]-s[l-1];
if(num==sum[l]) dfs(x+1);
}
else dfs(x+1);
s[x]++;
if(x>=k){
l=x-k+1;
r=l+k-1;
num=s[r]-s[l-1];
if(num==sum[l]) dfs(x+1);
}
else dfs(x+1);
return;
}
int main(){
freopen("Binaria.in","r",stdin);
freopen("Binaria.out","w",stdout);
scanf("%d%d",&n,&k);
cnt=n-k+1;
for(int i=1;i<=cnt;i++) scanf("%d",&sum[i]);
dfs(1);
printf("%d",ans);
return 0;
}