The Values You Can Mak CF687C(简单DP)
2016-07-09 23:39
423 查看
题目链接:http://codeforces.com/problemset/problem/687/C
题意分析:给定n个数,用这n个数在和为k的情况下从n个数中找到所有的value,这些value之和也为k.
DP题我练的真的太少了,总是写不出状态状态方程,下一步打算好好刷刷紫书第八章的题目。
不能因为不擅长就逃避它们,感谢小伙伴给我讲这道题。定义数组dp[i][j] = 1表示由j 可以组成i
若dp[i][j] == 1则dp[i + c][j] = 1 dp[i + c][j + c] = 1; (c为常数)由此确立状态转移方程。
题意分析:给定n个数,用这n个数在和为k的情况下从n个数中找到所有的value,这些value之和也为k.
DP题我练的真的太少了,总是写不出状态状态方程,下一步打算好好刷刷紫书第八章的题目。
不能因为不擅长就逃避它们,感谢小伙伴给我讲这道题。定义数组dp[i][j] = 1表示由j 可以组成i
若dp[i][j] == 1则dp[i + c][j] = 1 dp[i + c][j + c] = 1; (c为常数)由此确立状态转移方程。
#include<iostream> #include<algorithm> #include<cstring> #include<iomanip> #include<cctype> #include<string> #include<cmath> #include<cstdio> #include<vector> #include<cstdlib> #define LL long long typedef long long ll; using namespace std; const int maxn = 510; //ll gcd(ll a, ll b) //{ // return !b ? a : gcd(b, a % b); //} //ll lcm(ll a, ll b) //{ // return a / gcd(a, b) * b; //} vector<int> ans; int dp[maxn][maxn]; int main() { int n, k; while(scanf("%d%d",&n, &k) == 2) { int x; dp[0][0] = 1; for(int i = 0; i < n; i++) { scanf("%d",&x);//输入x后判断它能否和其他数组成k(x必须小于等于k才有可能成立) for(int j = k; j >= x; j--) { for(int l = 0; l + x <= k; l++) { if(dp[j - x][l]) { dp[j][l] = 1; dp[j][l + x] = 1; } } } } 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++) { if(i) printf(" "); printf("%d",ans[i]); } printf("\n"); } return 0; }
相关文章推荐
- php include include_once require require_once 的区别与联系
- 307. Range Sum Query - Mutable
- 当UITableViewCell被选中时,上面的自定义view消失的问题
- 当UITableViewCell被选中时,上面的自定义view消失的问题
- 304. Range Sum Query 2D - Immutable
- 303. Range Sum Query - Immutable
- Java中toString(),(String),valueOf()的区别与联系
- UIPickerView简单实用
- 300. Longest Increasing Subsequence
- 生成器模式(Builder)
- 关于UITableView中Cell的保持/保存 选中状态的简单方法
- hibernate中Query的list和iterator区别(续)
- UINavigationController 的一些坑
- POJ1904 King's Quest(完备匹配可行边:强连通分量)
- [置顶] The requested resource (/) is not available
- UINavigationController改变背景颜色
- LeetCode - 112. Path Sum
- Label设置行间距
- 火眼金睛:continue&break
- UESTC 842 天下归晋(树状数组)