zoukankan      html  css  js  c++  java
  • Subset Sums

    链接

    分析: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
  • 相关阅读:
    渐变
    阴影
    html+css
    background用法
    语言特点
    h5c3介绍
    js的组成
    第九章 查找文件或者命令
    第八章 查看文件内容命令
    第七章 文件管理之基础命令
  • 原文地址:https://www.cnblogs.com/wolf940509/p/7197129.html
Copyright © 2011-2022 走看看