社区讨论
求如何模拟与代码含义
灌水区参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m15x76hd
- 此快照首次捕获于
- 2024/09/17 12:14 去年
- 此快照最后确认于
- 2025/11/04 21:03 4 个月前
CPP

#include<cstdio>
typedef long long LL;
const int M=1e3+5;
int n;
LL b[M], ans;
int main(){
scanf("%d",&n);
if(((1+n) *n /2)&1)puts("0");
else{
for(int i=0;i<(1<<(n/2));++i){
int cur=0;
for(int j=0; (i>>j)>0 ;++j) if((i>>j) &1) cur+=(j+1);
b[cur]++;
}
for(int i=0;i<(1<<(n-n/2));++i){
int cur=0;
for(int j=0;(i>>j)>0;++j) if((i>>j)&1) cur+=j+n/2+1;
if((1+n) *n / 4 >=cur)
ans+=b[(1+n) * n / 4-cur];
}
printf("%lld\n", ans /2);
}
return 0;
}
代码可能有误,还可以见这里:

回复
共 4 条回复,欢迎继续交流。
正在加载回复...