考察点
01 背包 表示方案数
有手就行
Code
#include <iostream>
using namespace std;
typedef long long ll;
const int N=400;
ll f[N];
int n;
int main(){
cin>>n;
int b=(1+n)*n/2;
if(b%2!=0) cout<<"0"<<endl;
else{
b/=2;
f[0]=1;
for(int i=1;i<=n;i++)
for(int j=b;j>=i;j--)
f[j]=f[j]+f[j-i];
cout<<f[b]/2;
}
return 0;
}