时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述小明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”。今天一早小明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N 元。于是,他把每件物品规定了一个重要度...
分类:
其他好文 时间:
2015-06-07 11:11:04
阅读次数:
152
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果。自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描写叙述一个最优解的结构,寻找子问题。对问题进行划分...
分类:
其他好文 时间:
2015-06-06 13:31:37
阅读次数:
112
给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?
整个解的空间相当于一个二叉树,左边是0,代表不取这个物品,右边是1,代表取这个物品,然后进行dfs,回溯的时候修改。
注意,这里应该有两个剪枝,我这里只写了一个。
#include
#include
#include
using namespace std;
...
分类:
编程语言 时间:
2015-06-05 00:46:43
阅读次数:
133
http://acm.hdu.edu.cn/showproblem.php?pid=2660f[v][u]=max(f[v][u],f[v-1][u-w[i]]+v[i];注意中间一层必须逆序循环. 1 #include 2 #include 3 #include 4 using namesp...
分类:
其他好文 时间:
2015-06-01 22:14:32
阅读次数:
165
排序概述排序用途广泛,比如为数据库查询结果按时间排序,最小生成树算法中对边按权重排序,背包问题中对物品按大小排序等等。排序算法有很多,本文主要记录了冒泡排序、插入排序、快速排序、选择排序、堆排序、归并排序等几种比较流行的算法。冒泡排序 //冒泡排序,对数组做n-1趟扫描,每一趟把未就位的元素中的最大的元素
//放到他正确的位置上,每一趟扫描从输入数组第一个元素开始,依次...
分类:
编程语言 时间:
2015-05-31 11:01:31
阅读次数:
210
题目链接:http://codeforces.com/problemset/problem/442/B题目大意:有n个人,第i个人出一道题的概率是pi,现在选出一个子集,使得这些人恰好出一个题的概率最大。问最大概率。可以仿照背包问题来做,即每个人可问可不问。f[i][j]代表从前i个人里问j个人所获...
分类:
其他好文 时间:
2015-05-31 01:20:57
阅读次数:
113
一个背包问题将价值变成了概率,求最小的一个收不到的概率,然后用1减去就可以啦!#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int w[1000...
分类:
其他好文 时间:
2015-05-29 23:12:42
阅读次数:
147
题意:有一个容量为n的箱子,有两种珠宝,占的体积和价值分别是s1,v1,s2,v2,求能装下的最大的价值总量。
分析:刚开始以为是背包问题,但其实没那么简单;后来分情况讨论还是不行;后来又暴力枚举,当然是超时了。正确做法是有一部分是用背包的贪心,另一部分用枚举!现在就是看哪一部分用贪心。
看别人的题解是:L = LCM(s1,s2),可是知道大于L的部分就用价值比高的,所以n%L的部分枚举,其...
分类:
其他好文 时间:
2015-05-28 23:10:46
阅读次数:
174
如果我们将每一种优惠方案看成一种物品,那么这个问题就可以转换成背包问题,我们可以定义dp[a1][a2][a3][a4][a5]表示购买第一到第五中物品ai个时的最小代价,然后转移方程类似于完全背包dp[a1][a2][a3][a4][a5]=min(dp[a1-st[i].num[a1]][a2-st[i].num[a2]…[a5-st[i].num[a5]);但是这样还不够,因为根据题目要求其实...
分类:
其他好文 时间:
2015-05-27 10:17:01
阅读次数:
117
状态压缩DPDP过程中的状态不可能像背包问题一样只有整数,肯定有各种各样稀奇古怪的状态,需要不止一个变量来表示。这种情况下如果需要使用DP 就必须把状态压缩成一个数来表示,并且一个数只能对应于一种状态。特别地,对于集合我们可以把每一个元素的选取与否对应到一个二进制位里,从而把状态压缩成一个整数,大大方便了计算和维护。对于不是整数的情况,很多时候很难确定一个合适的递推顺序,因此使用记忆化搜索可以避免这...
分类:
其他好文 时间:
2015-05-25 11:30:38
阅读次数:
203