Codeforces 687C The Values You Can Make DP
来源:互联网 发布:手机关闭淘宝店铺 编辑:程序博客网 时间:2024/05/16 04:46
题意:全集A为n个a[i],若有某个集合B其和为k,则B的任意一个子集C定义其元素之和x为合法
n,k,c[i]<=500 求出所有合法的x.
设dp[i][j][k] 表示前i个数能凑出子集和为j,和为j的集合又有子集和为k
n,k,c[i]<=500 求出所有合法的x.
设dp[i][j][k] 表示前i个数能凑出子集和为j,和为j的集合又有子集和为k
考虑第i个数是否加入,加入到集合j时,又分是否加入集合j的子集.
dp[i][j][k]|=dp[i-1][j][k]|dp[i-1][j-a[i][k]|dp[i-1][j-a[i]][k-a[i]].
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=5e2+1;int dp[N][N],a[N],n,K;vector<int> ans;int main(){while(cin>>n>>K){for(int i=1;i<=n;i++)scanf("%d",&a[i]);memset(dp,0,sizeof(dp));dp[0][0]=1;for(int i=1;i<=n;i++){for(int j=500;j>=0;j--){for(int k=500;k>=0;k--){dp[j][k]|=dp[j][k];if(j>=a[i])dp[j][k]|=dp[j-a[i]][k];if(j>=a[i]&&k>=a[i])dp[j][k]|=dp[j-a[i]][k-a[i]];}}}for(int i=0;i<=K;i++){if(dp[K][i])ans.push_back(i);}printf("%d\n",ans.size());for(int i=0;i<ans.size();i++)printf("%d ",ans[i]);printf("\n");}return 0;}
阅读全文
0 0
- Codeforces 687C The Values You Can Make DP
- Codeforces 689 C The Values You Can Make(dp)
- [DP] Codeforces 687C #360 (Div. 1) C. The Values You Can Make
- Codeforces 687C The Values You Can Make(背包)
- Codeforces-687C The Values You Can Make
- CodeForces 687C The Values You Can Make
- CodeForces 687C The Values You Can Make
- CodeForces 687C The Values You Can Make
- 7_6_M题 The Values You Can Make题解[Codeforces 687C](DP)
- CodeForces 687C - The Values You Can Make(01背包dp)
- 687C: The values you can make
- Codeforces 688E The Values You Can Make【Dp】
- Codeforces 688E The Values You Can Make(DP)
- Codeforces Round #360 (Div. 1) C. The Values You Can Make(DP)
- CodeForces 678C The Values You Can Make (3维DP)
- The Values You Can Make CodeForces
- codeforces 687C - The Values You Can Make(背包+滚动数组)
- Codeforces Round #360 (Div. 2) E The Values You Can Make(DP)
- hdu 4960 Another OCD Patient(DP)
- POJ 1125 Stockbroker Grapevine (Floyd)
- 冒泡、插入、选择排序
- Linux Rsync 远程同步工具
- hdu 6070 Dirt Ratio
- Codeforces 687C The Values You Can Make DP
- KMP算法详解
- 17 多校
- JAVA环境变量关于
- python+flask+sqlite3完成的小型博客留言板
- STM32使用ADC+电位器测电压
- java.util.Date和java.sql.Date的区别及应用
- DrawerLayout简单实用(内嵌ViewPager与TabLayout)
- Java中,如何把ascii码转换成字符?