码迷,mamicode.com
首页 > 其他好文 > 详细

Subset Sums

时间:2017-07-17 22:14:45      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:lang   nbsp   i++   code   http   view   lap   end   div   

链接

分析:dp[i][j]表示前i个数能够组成j的对数,可得dp[i][j]=dp[i-1][j]+dp[i-1][j-i],所以最后dp[n][sum/2]既是所求

技术分享
 1 /*
 2     PROB:subset
 3     ID:wanghan
 4     LANG:C++
 5 */
 6 #include "iostream"
 7 #include "cstdio"
 8 #include "cstring"
 9 #include "string"
10 using namespace std;
11 const int maxn=50;
12 const int maxm=1000;
13 int a[maxn],n,ans,cnt;
14 int dp[maxn][maxm];
15 int main()
16 {
17     freopen("subset.in","r",stdin);
18     freopen("subset.out","w",stdout);
19     cin>>n;
20     int sum=0;
21     for(int i=1;i<=n;i++){
22         sum+=i;
23     }
24     if(sum%2){
25         cout<<"0"<<endl;
26     }else{
27         ans=sum/2;
28         for(int i=1;i<=n;i++)
29             dp[i][0]=1;
30         for(int i=1;i<=n;i++){
31             for(int j=1;j<=ans;j++)
32                 dp[i][j]=dp[i-1][j]+dp[i-1][j-i];
33         }
34         cout<<dp[n][ans]<<endl;
35     }
36 }
View Code

 

Subset Sums

标签:lang   nbsp   i++   code   http   view   lap   end   div   

原文地址:http://www.cnblogs.com/wolf940509/p/7197129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!