解题报告
题意:
容量为v的大小,物品数n,每个物品有价值和容量,求能装进包的最大价值。
思路:
基础01背包。
dp[j]=max(dp[j],dp[j-c[i]]+w[i])
#include
#include
#include
#define inf 99999999
using namespace std;
int main()
{
int t,i,j,n,v,...
分类:
其他好文 时间:
2014-08-01 23:07:32
阅读次数:
284
题目意思: 电视台发送信号给很多用户,每个用户愿意出一些钱,电视台经过的路线都有一定费用,求电视台不损失的情况下最多给多少用户发送信号。多么明显的有依赖性的01背包: dp[i][j]对于借点I 背包容量J ;#include #include #include #include #includ.....
分类:
其他好文 时间:
2014-07-30 09:57:33
阅读次数:
186
完全背包,转化为0/1背包 dp[i, j] = max(dp[i-1, j], dp[i, j - minutes[i]] + points[i])
/*
ID:kevin_s1
PROG:inflate
LANG:C++
*/
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-07-20 23:17:56
阅读次数:
353
碎碎念----- 突然 觉得好无聊~~ 还好 只有4天了~~ 直接上题吧~~ touch me 使用多重背包的代码是转自---键盘上的舞者---- 写得特别有想法 使用dp的代码是porker写的.. 使用搜索的 我一开始是将价值从低到高搜索的 这样TLE了,,因为速度实在是太慢了 ...
分类:
其他好文 时间:
2014-07-18 23:37:35
阅读次数:
258
01背包,DP简答题就行,要用滚动数组,不然内存要爆。for循环的方向很重要,虽然是简单题,但对理解DP帮助很大,听队长说要把每一个状态写出来,我试着写了一下,果然更容易理解了。 1 #include 2 #include 3 #define doumax(a,b) (a>b?a:b) 4 cons...
分类:
其他好文 时间:
2014-07-18 09:23:32
阅读次数:
181
所谓的完全背包,就是说物品没有限制数量的。
怎么起个这么intimidating(吓人)的名字?
其实和一般01背包没多少区别,不过数量可以无穷大,那么就可以利用一个物品累加到总容量结尾就可以了。
本题要求装满的,故此增加个限制就可以了。...
分类:
其他好文 时间:
2014-07-01 14:25:28
阅读次数:
229
本题解法很多,因为给出的数据特殊性故此可以使用DFS和BFS,也可以使用01背包DP思想来解。
这里使用BFS,缺点是比DFS更加耗内存,不过优点是速度比DFS快。
当然也比DFS难写点:
int N, B;
int Height[21];
inline int mMin(int a, int b) { return a > b? b : a; }
inline int mMax(int a...
分类:
其他好文 时间:
2014-06-28 08:11:26
阅读次数:
238
最简单的背包问题了,本题应该除了背包就一个考点了:不能开二维数组。我没开过二维,不过看数据是不可以的。太大了。
做法有两种改进省内存DP:
1 所谓的滚动数组
2 逆向填表
很久没做背包DP,突然觉得这种背包问题很简单了。
下面给出两种解法:
1 calBag()是滚动数组
2 calBag2()是逆向填表
#pragma once
#include
#inclu...
分类:
其他好文 时间:
2014-06-27 08:09:43
阅读次数:
165
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1042题意:给出四种面值的硬币c1,c2,c3,c4。n个询问。每次询问用d1、d2、d3、d4个相应的硬币能够拼出多少种总和为s?思路:(1)首先,用完全背包求出f[i]表示四种硬币的数量...
分类:
其他好文 时间:
2014-06-23 00:48:28
阅读次数:
486
NYOJ 674 善良的国王(树形背包DP)...
分类:
其他好文 时间:
2014-05-14 14:59:43
阅读次数:
310