/*分析:因为他给的数据是递增的 而求得是这些数据总的 最优解所以我们可以考虑,它的子问题求解不影响总的求解 也就是我们可以先求出 第一个的最优解 第二个....以此类推到总的最优解那么我们想如何利用前面一个的最优解推出当前的最优解 考虑这个与背包问题类似 我们在加入当前物品时判断当前加入后...
分类:
其他好文 时间:
2014-12-25 23:21:02
阅读次数:
129
#1038 : 01背包
时间限制:20000ms
单点时限:1000ms
内存限制:256MB
描述
且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了!
小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖品需要need(i)张奖券进行兑换,同时也只能兑换一次,为了...
分类:
其他好文 时间:
2014-12-25 20:35:46
阅读次数:
189
Description圆桌上摆放着n份食物,围成一圈,第i份食物所含热量为c[i]。相邻两份食物之间坐着一个人,共有n个人。每个人有两种选择,吃自己左边或者右边的食物。如果两个人选择了同一份食物,这两个人会平分这份食物,每人获得一半的热量。假如某个人改变自己的选择后(其他n-1个人的选择不变),可以...
分类:
其他好文 时间:
2014-12-25 12:45:02
阅读次数:
772
最近刚开始接触动态规划(Dynamic Programming)算法,之前略有耳闻,一直觉得DP非常之高大上,看了某些题的DP解法也是云里雾里,哇擦?!这么几行代码就解决了?怎么全是数组操作?时间复杂度也很低的样子。其实不然,当我真正开始学习动态规划的时候才发现这货没那么玄乎。把我对DP浅显的理解总...
分类:
其他好文 时间:
2014-12-24 17:56:40
阅读次数:
132
0/1背包问题:
现有n种物品,对1i,价值为正整数Vi,背包能承受的最大载重量为正整数W,现要求找出这n种物品的一个子集,使得子集中物品的总重量不超过W且总价值尽量大。(注意:这里对每种物品或者全取或者一点都不取,不允许只取一部分)
根据问题描述,可以将其转化为如下的约束条件和目标函数:
于是,问题就归结为寻找一个满足约束条件(1),并使目标函数式(2)达到最大的解向量...
分类:
其他好文 时间:
2014-12-24 00:06:33
阅读次数:
349
今天写写最短路径的Floyd算法(有翻译叫弗洛伊德,不过这奇葩翻译用来读读就好……)。 这个算法的实质,广义来讲,其实是DP(动态规划)。其实按说,算法应该先说说什么贪心、搜索、DP、二分之类的基本算法的,但我觉得太广的东西对没有基础的人来说讲起来不清楚,还是先写写比较典型的一些算法比较好。而...
分类:
编程语言 时间:
2014-12-23 11:47:57
阅读次数:
183
题目描述:
每年毕业的季节都会有大量毕业生发起狂欢,好朋友们相约吃散伙饭,网络上称为“bg”。参加不同团体的bg会有不同的感觉,我们可以用一个非负整数为每个bg定义一个“快乐度”。现给定一个bg列表,上面列出每个bg的快乐度、持续长度、bg发起人的离校时间,请你安排一系列bg的时间使得自己可以获得最大的快乐度。
例如有4场bg:
第1场快乐度为5,持续1小时,发...
分类:
其他好文 时间:
2014-12-22 11:17:10
阅读次数:
221
题意:
给出若干棵树的高度,你可以进行一种操作:把某棵树增高h,花费为h*h。
操作完成后连线,两棵树间花费为高度差*定值c。
求两种花费加和最小值。
题解:
跟NOIP2014 D1T3很像。
暴力动规是O(1*10^9)会T
所以单调队列一下,每颗树扫两遍结束。
完事,看水代码吧。
#include
#include
#include
#include ...
分类:
其他好文 时间:
2014-12-22 09:26:23
阅读次数:
158
动态规划,具有“最优子结构”、“子问题重叠”、“边界”和“子问题独立”,当你发现你正在思考的问题具备这四个性质的话,那么恭喜你,你基本上已经找到了动态规划的方法。有了上面的这几点,我们就可以写出动态规划的转移方程。 我们可以把问题的解放在一个变量中,如果再次遇到这个问题就直接从变量中获...
分类:
其他好文 时间:
2014-12-20 20:47:47
阅读次数:
150
1 #include 2 int c[10][100]; 3 int knapsack(int m,int n) 4 { 5 int i,j,w[10],p[10]; 6 for(i=1;ic[i-1][j])17 c[i...
分类:
其他好文 时间:
2014-12-20 10:26:50
阅读次数:
174