题目描述
对于从 到 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。
题目解析
,设 表示已经做完 ~ ,和为 的方案数
再判断一下当 到 的和不为偶数的情况即可。记得要用
代码
#include<cstdio>
using namespace std;
long long n,f[1005],t;
int main()
{
freopen("subset.in","r",stdin);
freopen("subset.out","w",stdout);
scanf("%lld",&n);
for(int i=1;i<=n;i++) t+=i;
if(t%2!=0)
{
printf("0");
return 0;
}
t/=2;
f[0]=1;
for(int i=1;i<=n;i++)
for(int j=t;j>=i;j--)
f[j]+=f[j-i];
printf("%lld",f[t]/2);
}