动态规划
qiusuo800
这个作者很懒,什么都没留下…
展开
-
hdu 2639 Bone Collector II
题目 http://acm.hdu.edu.cn/showproblem.php?pid=2639分析 求01背包计算过程中产生的所有可能值从大到小排序后的第K大值(即包含所有不满足条件,但是能够计算出来的结果,当时忽略此条件卡了许久),本题普通解决思路为:用一个数组或者栈记录01背包过程中所有可能产生的值,然后排序,去重复,在求第K大的值(这种方法就是”暴搜“,参考原创 2013-04-05 09:23:27 · 577 阅读 · 0 评论 -
hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目http://acm.hdu.edu.cn/showproblem.php?pid=2191分析原本是一个多重背包的问题,不过感觉数据量比较小,然后就用01背包的思路模拟多重背包,竟然也过了复杂度O(VN),V为所有补品和,N为所有物品个数涉及内容动态规划感想有时候可以尝试用简单的方法的组合来解决复杂的问题代码#include using原创 2013-08-29 18:54:08 · 699 阅读 · 0 评论 -
hdu 2602 Bone Collector
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=26022.分析简单的01背包问题,目标是求最大值,数组初始化为03.复杂度时间复杂度O(VN);空间复杂度O(V);4.涉及内容动态规划5.感想把《背包九讲》上的经典题目好好做做。对于其他方面DP、数据结构等也是如此、6.代码#include usin原创 2013-10-01 11:25:29 · 633 阅读 · 0 评论 -
hdu 1723 Distribute Message
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=17232.分析类似于阶梯问题,只不过此处,当处理i的时候,决策前i-1个,即为min(M,i)3.复杂度时间复杂度O(N^2);空间复杂度O(N);4.涉及内容动态规划5.感想本道题让我想起了对于求单调递增子序列(LIS)中的O(NLogN)的优化思路:在积累的索引原创 2013-10-01 11:02:52 · 614 阅读 · 0 评论 -
hdu 1160 FatMouse's Speed
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=11602.分析由于本题目是在[1,i-1]中寻找与第i个的兼容序列,因此每次都需要便利一下前i-1个值,依然类似阶梯问题。决策:当处理j的时候,前边共有j-1个决策,找相容的,记录最大值亮点:用前驱数组记录最长的链,然后递归实现正序输出,妙~~~3.复杂度时间复杂度O(原创 2013-10-01 11:18:04 · 700 阅读 · 0 评论 -
hdu 1114 Piggy-Bank
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=11142.分析题目要求是装满,即在本价值限制LimitValue下减去本物品价值Value之后的LimitValue`必须存在一个已经计算出来的值。(如果采用初始化的值的话,就变成背包不要求装满,慢慢理解)。 因此,和完全背包的思路相似,则初始化的时候,要么初始化为整形最大值,计算的时候用原创 2013-10-01 09:21:13 · 702 阅读 · 0 评论 -
hdu 1059 Dividing
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=10592.分析1.本题要求平分物品,所以资源上限应该为总价值的一半,因此当资源限制为奇数的时候无法平分,应该去掉;2.为了要达到价值的一半而进行物品的选择,可以按照01背包的思路针对每类物品的每一个商品进行01背包,记录中间产生的值和资源限制进行比较;但是,01背包速度较慢,没有优化,原创 2013-10-01 09:44:06 · 568 阅读 · 0 评论 -
hdu 1260 Tickets
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=12602.分析简答DP,类似于走阶梯(走一步还是两步到达终点)的问题,状态转移方为:f[i]=min(f[i-1]+t1[i],f[i-2]+t2[i]);决策是:前一个、前两个算出秒数之后利用时间函数转换成具体的时分秒输出即可,3.复杂度4.涉及内容动态规划5原创 2013-10-01 09:50:12 · 708 阅读 · 0 评论 -
hdu 2963 Bone Collector II
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=26392.分析3.复杂度虽然和普通01背包不同,但是由于附加值是常数,因此时间和空间复杂度不变;时间复杂度O(VN);空间复杂度O(V);4.涉及内容动态规划5.感想把《背包九讲》上的经典题目好好做做。对于其他方面DP、数据结构等也是如此、6.代码#原创 2013-10-01 19:45:05 · 611 阅读 · 0 评论 -
hdu 2159 FATE
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=21592.分析类似于阶梯问题,只不过是二维的;约束条件为:杀怪数量和忍耐度,存储的值为经验值;动态规划中使用的决策:在处理第i类怪的时候,通过决定杀本种类怪的个数来找决策(和hdu 3033代码结构相似)3.复杂度时间复杂度O(NMKS),空间复杂度O(MS)4.涉及内容原创 2013-11-30 20:19:08 · 781 阅读 · 0 评论 -
*hdu 1876 机器人系列2
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=18762.分析这题让人很抓狂……交了不知道多少次才过从前往后找,类似dp 的方法拓展出到达每个位置正好没有能量到的最大补充能量次数和方法数,最后再统计1: int 是显然会超的……2:给的能量会为 0 ,如果能量在终点处为 0 ,那么要特别讨论一下……3:一定要判断你找到的原创 2013-11-30 20:31:27 · 792 阅读 · 0 评论 -
hdu 2125 Local area network
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=21252.分析类似二维阶梯的问题,只不过需要处理缺陷点的问题;注意缺陷点的横纵坐标的标识,不能想当然的自己感觉;动态规划所使用的决策:左边和下边的数值之和;3.复杂度空间复杂度O(MN);时间复杂度O(MN);4.涉及内容算法:动态规划5.感想类似二维阶梯的问题原创 2013-11-30 20:26:19 · 1092 阅读 · 0 评论 -
hdu 1712 ACboy needs your help
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=17122.分析状态转移方程:f[i][j]=max(f[i][j],f[i-1][j-k]+t[k]);前i门课消耗的j天时间获得的价值决策:本门课程消耗了k([0,j])天,然后再上一门课程的j-k天开始计算价值可以和hdu2670作为对比,和书上的最优编码问题类似,为了满足最有子结构和原创 2013-08-29 21:13:37 · 601 阅读 · 0 评论 -
hdu 2167 Pebbles
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=21672.分析这是我做的第一道状态压缩的问题,自己的感想为:1).需要找到压缩状态的方法,并表示出合理的状态;2).根据状态的标识,找出每个状态的兼容状态,从而找到到达本状态的决策(即兼容状态);3).对于第一个状态的处理比较重要,因为会影响到后面的处理;4).状态压缩的处理方法:逐行(本原创 2013-08-29 20:58:04 · 631 阅读 · 0 评论 -
hdu 3033 I love sneakers!
题目 http://acm.hdu.edu.cn/showproblem.php?pid=3033分析 这题一看就是带分组的01背包问题,而且题目限制每组至少取1个,而不是最多1个,不符合分组背包至多取一个的思路,但是感觉可以从分组背包的解题代码框架中修改过来。《背包九讲》中分组背包框架:for 所有的组k forv=V..0原创 2013-04-04 22:44:43 · 579 阅读 · 0 评论 -
算法解析之感想---动态规划算法的初始化和转移
最近一直在做动态规划算法的专题训练,做了二十道题颇有感想,写出来和大家分享一下,欢迎广大ACMer,OIer,IOIer来交流~~~ 对于动态规划各种算法书中提到的最多的一半就是分析阶段、找状态、写状态转移方程。的确这些能够证明对于一个问题,你的解题思路是否正确,但是如果要想能够完全解决一道动态规划问题,除了这些之外我感觉就是对于数据的初始化了,这就有些像”高考时父母说的不要输在起跑线上原创 2013-04-05 16:24:19 · 1719 阅读 · 0 评论 -
hud 1025 Constructing Roads In JGShining's Kingdom
题目http://acm.hdu.edu.cn/showproblem.php?pid=1025分析本题要求求出互不交叉的能够相容的最多的道路,想到这里觉得必须对所有的道路按照一定的规则进行排序(此处为经验,多练习即可)。在题目给出的n条道路有序之后,但询问与第j条道路相容的所以道路的时候,根据动态规划的最有子结构和重叠子问题性质,只用考虑前边j-1个与j的相容情况。因此,为了求出原创 2013-04-10 16:29:43 · 616 阅读 · 0 评论 -
hud 3415 Max Sum of Max-K-sub-sequence
题目http://acm.hdu.edu.cn/showproblem.php?pid=3415分析做的时候要注意由于首尾相连,所以我们就扩出一倍的空间来简化这个过程。最朴素的做法,在处理第i个元素的时候,将以i开始的长度为1...K的所有情况算一遍然后和以前存储的结果比较,保存中间结果,此时时间复杂度为O(N*K),很显然会超时,需要另想办法优化。考虑到最朴素的做法中可以使用原创 2013-04-15 16:41:51 · 646 阅读 · 0 评论 -
hdu 1059 Dividing
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=10592.分析1.本题要求评分物品,所以资源上限应该为总价值的一半;2.为了要达到价值的一半而进行物品的选择,可以按照01背包的思路针对每类物品的每一个商品进行01背包,记录中间产生的值并与资源限制进行比较,则题目可解;3.但是01背包速度较慢,没有优化,详见《背包九讲》。原创 2013-05-10 11:30:53 · 481 阅读 · 0 评论 -
hdu 4223 Dynamic Programming?
题目http://acm.hdu.edu.cn/showproblem.php?pid=4223分析这个没有什么好的思路,就是按照题目要求一段一段的,把每种可能都计算了(即,在每一个起点的位置上按照步长进行分段来求值),然后求最小值,步长取值范围[1,N-1]。复杂度O(N*N)涉及内容算法:动态规划感想如果没有什么好的思路,就用普通思路先做出来,然后在原创 2013-05-27 14:25:18 · 631 阅读 · 0 评论 -
hdu 1069 Monkey and Banana
题目http://acm.hdu.edu.cn/showproblem.php?pid=1069分析和hdu 1025类似,区别在于本题需要能够识别出来每个矩形,相邻的三个面都要存储(这样才能找到所有合理的组合情况),所以数组中元素个数为矩形个数的3倍。决策:当处理第i个的时候,决策为前边i-1个,依次遍历找到最大值(即相容的个数中最大的)复杂度O(N*N)原创 2013-05-27 14:36:29 · 681 阅读 · 0 评论 -
hdu 2391 Filthy Rich
题目http://acm.hdu.edu.cn/showproblem.php?pid=2391分析类似于阶梯问题,简单的dp决策:f[i][j]=max(f[i-1][j-1],f[i-1][j],f[i][j-1]);复杂度O(R*C)涉及内容算法:动态规划感想有些题目就是从经典题目改编过来,就算不是,他的解法也和经典题目的类似代码#原创 2013-05-27 14:43:39 · 704 阅读 · 0 评论 -
hdu 1978 How many ways
题目http://acm.hdu.edu.cn/showproblem.php?pid=1978分析每一次状态转移的决策数目为该格子能量的值,横纵坐标减去当前格子坐标差的和只要小于格子能量的就都可以到达复杂度空间复杂度O(M*N);时间复杂度O(M*N*E^2)涉及内容算法:动态规划感想简单DP,只不过需要特殊考虑的地方为:从当前节点能到达的所有目标节点原创 2013-07-09 16:58:33 · 632 阅读 · 0 评论 -
hud 2151 Worm
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=21512.分析题目给出初始位置P,然后每分钟都从上一次能到达的位置开始向左右两边扩展,同时记录转移的方案书,这是典型的直接模拟的思路。此时对于动态规划思想的运行指示限定在存储了上一分钟的中间结果。动态规划使用的决策为:相邻果树的数值之和,按照时间顺序和位置考虑最优子结构和重叠子问题原创 2013-07-09 16:51:32 · 547 阅读 · 0 评论 -
hdu 1081 To The Max
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=10812.分析最大矩形的经典问题,不过需要注意的是其中还有负数,所以初始化的时候要初始化为最小值,或者初始化为当全部都为负值仍然不会达到的值。使用的决策:在确定行之后,在列方向上按照最大字段和求解行:1列:用数组b[]存储,然后在[i,j]上不断累积3.复杂度双原创 2013-07-09 17:18:42 · 552 阅读 · 0 评论 -
hdu 3496 Watch The Movie
1.题目http://acm.hdu.edu.cn/showproblem.php?pid=34962.分析取到的是最优值,而且最优值没有限制可以使用01背包的思路来写状态转移方程,感觉.和HDU 2660相似。3.复杂度空间复杂度O(MNL);时间复杂度O(MNL);4.涉及内容算法:动态规划5.感想因为题目要求是取得最大时间限制为L的要求下的最大值(即不原创 2013-11-30 17:28:33 · 713 阅读 · 0 评论