USACO section2.2 Subset Sums题解&代码

来源:互联网 发布:哪款手机优化软件最好 编辑:程序博客网 时间:2024/05/17 04:27

恩...连交三次才过...又被USACO的数据教做人...

首先这题是一道很简单的01背包...或者说递推...

只要O(n^3)就可以了...

然后...ll大法好...

最后...为什么我会忘记中间数可能不是整数这个事实...我也不知道...

/*ID:rainbow16LANG:C++TASK:subset*/#include<iostream>#include<stdio.h>using namespace std;int n,MAX;long long dp[800];int main(void){freopen("subset.in","r",stdin);freopen("subset.out","w",stdout);cin>>n;MAX=(1+n)*n/2;dp[0]=1;for(int i=1;i<=n;i++)for(int j=MAX;j>=i;j--)dp[j]+=dp[j-i];if(MAX%2==0)cout<<dp[MAX/2]/2<<endl;elsecout<<'0'<<endl;return 0;}


0 0
原创粉丝点击