题目描述有n种不同大小的数字,每种各个。判断是否可以从这些数字之中选出若干使它们的和恰好为K。输入首先是一个正整数T(1 2 #include 3 #include 4 using namespace std; 5 int dp[100001],a[100001],m[100001]; 6 in.....
分类:
其他好文 时间:
2015-07-31 17:48:42
阅读次数:
87
4013多重部分和问题难度级别:B; 运行时间限制:2000ms; 运行空间限制:262144KB; 代码长度限制:2000000B试题描述n种大小不同的数字 Ai,每种各Mi个,判断是否可以从这些数字之中选出若干个使他们的和恰好为K。输入第一行为两个正整数n,K。第二行为n个数Ai,以空格隔开。第...
分类:
其他好文 时间:
2015-07-07 21:09:48
阅读次数:
120
Problem DescriptionMarsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share...
分类:
其他好文 时间:
2015-05-29 21:36:23
阅读次数:
136
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int n,k;
int a[100];
int m[100];
int dp[100];
int main(){
while(cin >> n)...
分类:
其他好文 时间:
2015-04-23 19:57:31
阅读次数:
147
这里一般的完全背包做法:转化为01背包(可以对01背包进行二进制优化),复杂度是O(n?V?logV/cost[i]2)O(n*V*log^{V/cost[i]}_2)。
这里巧妙的定义了一种方法让复杂度降到了O(n?V)O(n*V)
**转移方程思想:定义能装满dp[i][j]为容量为j时,第i种物品的剩余个数,则:
if (dp[i-1][j] >= 0),dp[i][j]=m...
分类:
其他好文 时间:
2015-04-11 16:25:23
阅读次数:
190
传说中的男人八题,是男人就A这八题。有n种面额的硬币,面额个数分别为A_i、C_i,求最多能搭配出几种不超过m的金额?
这是一个多重部分和问题(多重背包问题),放在了《2.3 记录结果再利用的“动态规划” 优化递推关系式》。最基本的做法是:
dp[i][j] := 用前i种硬币能否凑成j
递推关系式:
dp[i][j] = (存在k使得dp[i - 1][j -...
分类:
其他好文 时间:
2014-11-15 11:28:38
阅读次数:
282
描述: N种不同数字ai每种mi个,判断是否可以选择若干个使得和为K N=ai) { if (Dp[i-1][k]) { //上一个已经可以构成 ...
分类:
其他好文 时间:
2014-09-01 21:02:53
阅读次数:
173
多重部分和问题 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 有n种不同大小的数字a, 每种各m个. 判断是否可以从这些数字之中选出若干使它们的和恰好为K.使用动态规划求解(DP), 方法1: dp[i+1][j] = 用前n种数字是否能加和成j, 时间复杂度O(nKm), 不是最优.方法2: dp[i+1][j] = 用前i种数加和得到j时,...
分类:
其他好文 时间:
2014-07-20 22:23:03
阅读次数:
177