ACM_动态规划(DP)
文章平均质量分 79
ZeroClock
这个作者很懒,什么都没留下…
展开
-
poj 2373 Dividing the Path (DP_单调队列优化)
题目链接:http://poj.org/problem?id=2373题目大意:给定一个长度L,等分为L段,有n头牛,每头牛有一个活动区域,比如3,6,又有喷泉,喷的是圆形,半径在A,B之间,要求在长度为L的区间内安放最少的喷泉,使得每个位置都能被喷到,有两个要求:1、牛活动地区域内必须只由一个喷泉喷到,如果活动区域是(3,6),A = B = 1,则最大半径为1,如果放在3,原创 2012-04-23 16:19:34 · 1308 阅读 · 1 评论 -
poj 1631 Bridging signals (DP_最长递增子序列nlogn)
题目链接:http://poj.org/problem?id=1631题目大意:给定1个序列,不会重复,x出现在y位置,即代表x与y可以连线。最后要从这个序列中尽量多地选择连线并保证连线不交叉。解题思路:其实这题就是两个序列连线,求连线不交的最多连线数。本题一个序列已经固定,那只要保证另一列被选择的数是递增的就不会相交了,不理解的话画几个模拟下就懂了。那问题原创 2012-04-21 01:37:01 · 1354 阅读 · 0 评论 -
hdu 1244 Max Sum Plus Plus Plus(DP_简单)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1244题目大意:给定一个由n个正整数组成的整数序列a1 a2 a3 ... an,求按先后次序在其中取m段长度分别为l1、l2、l3...lm的不交叠的连续整数的和的最大值。解题思路:状态转移方程:dp[i][j] = max(dp[i][j-1],dp[i-1]原创 2012-04-24 21:36:22 · 955 阅读 · 3 评论 -
Hdu 2546 饭卡 (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546题目大意:电子科大的食堂刷卡问题,如果卡上余额大等于5,那就可以随便打菜,即使打了鲍鱼等价格比余额多得多的菜。现在给出n个菜的单价,每个菜买一次,问最后卡上剩的余额最少为多少?解题思路:本题可套用01背包的思想,值是价值变为可达不可达。用dp[j]表示余额为原创 2012-05-27 19:16:40 · 1014 阅读 · 0 评论 -
Hdu 3033 I love sneakers! (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033题目大意:xx去买鞋,有k种牌子,然后给出n双鞋,每双鞋有它属于的牌子、价格、收藏价值。xx认为他不差钱,要求每种鞋子买一双。但实际上他只有m毛钱,问能否买到符合xx要求的鞋,能找到的话输出最大的收藏价值总和。解题思路:分组背包的变形,每种牌子要求至少选一个原创 2012-05-27 20:58:09 · 1068 阅读 · 1 评论 -
Uva 348 Optimal Array Multiplication Sequence (DP_矩阵链乘)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=284题目大意:标准的矩阵链乘问题,给定n个矩阵,ai行,bi列,两个矩阵相乘(bi == aj)计算次数为ai*bi*bj(ai*aj*bj)。现在原创 2012-05-27 01:28:06 · 1241 阅读 · 0 评论 -
Hdu 1494 跑跑卡丁车 (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1494题目大意:根据跑跑卡丁车改造而来的动态规划题目。跑道中每圈都分n个赛道,有L圈,跑完一个赛道能量加%20,跑完5个赛道能量满送一个加速卡,最多2个加速卡,如果加速卡为2个,能量为%100,又从0开始,不送加速卡。题目给定n个数ai和bi,ai为每个赛道正常耗时,bi为加速时的耗原创 2012-05-27 14:50:13 · 1333 阅读 · 0 评论 -
Hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191题目大意:要求用特定的钱买最大重量的粮食,有n种粮食,每种粮食有重量、价格、数量,最后的钱可以剩余。解题思路:又是一题多重背包被当成了01背包,做完对出题者心怀感恩啊,数据出得这么水。状态转移方程:dp[j] = min(dp[j-k*w[i]] + k *原创 2012-05-27 19:29:40 · 1148 阅读 · 0 评论 -
Hdu 1712 ACboy needs your help (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712题目大意:给定n门课,再用m天复习这n门课,然后给定一个n*m的矩阵A,A[i][j]表示用j天复习第i门课获得得收益。问用m天复习不同的课获得的最大收益。解题思路:本题本身没什么难度,但是数据给的很有迷惑性,一开始我认为1门课可以复习两次,然后就把n*m个原创 2012-05-27 20:07:43 · 796 阅读 · 0 评论 -
Hdu 3535 AreYouBusy (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3535题目大意:xiaoA想尽量多花时间做ACM,但老板要求他在t时间内做完n堆工作,每个工作耗时cost[i][j],幸福感val[i][j],每个工作有num[i]个工作,每堆工作都有一个性质,0表示至少要做里面的1个工作,1表示最多做里面的1个工作,2表示随意,做或不做都行。最原创 2012-05-28 10:18:10 · 992 阅读 · 6 评论 -
Uva 562 Dividing coins (DP_背包)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=503题目大意:给定n个硬币,要求将这些硬币平分以使两个人获得的钱尽量多,求两个人分到的钱最小差值。解题思路:其实和Uva147,35原创 2012-05-26 23:21:51 · 1293 阅读 · 0 评论 -
Hdu 1059 Dividing (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059题目大意:给定6堆硬币,每堆硬币的价值分别为1,2,3,4,5,6,现在给定每堆的硬币数量,问能否把这些硬币按价值平分?解题思路:简单的多重背包,把每堆硬币按二进制处理成若干件物品,每堆的cost分别为2^0,2^1..2 ^(k-1), num - 2^k原创 2012-05-27 16:24:03 · 728 阅读 · 1 评论 -
Hdu 1114 Piggy-Bank (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114题目大意:给定一个储蓄罐可容纳的重量和n个价值为p重量为w的硬币,问在填满储蓄罐的情况最小的价值为多少?如果没办法填满输出This is impossible.解题思路:因为题目的数据范围很小,时间又给很多,可以直接暴力,枚举每次选的数量后相当于01背包。状原创 2012-05-27 16:50:56 · 852 阅读 · 0 评论 -
Hdu 2639 Bone Collector II (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2639题目大意:要求找出第k大的价值,相同的价值只能算一种,如17,14,14,13,,那么13为第3大。解题思路:01背包的变种第k大01背包解决方法是从01背包的解法中改进而来。每次转移状态时,选择当前容量下的前k个价值,再找前面状态转移过来的前k个价值,然后原创 2012-05-29 19:48:19 · 1127 阅读 · 0 评论 -
Poj 2063 Investment (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059题目大意:给定一个初始资金m,然后给定n种投资方案,每种投资方案中有投资额costi和利息vali,每年的投资就可以拿到全部利息,然后累加起来继续投资利滚利。问经过k年后最多拥有多少资金?解题思路:这题我用了两种写法来解,一种是完全背包,一种是多重背包,前一原创 2012-05-30 19:44:43 · 1005 阅读 · 0 评论 -
Hdu 3496 Watch The Movie (DP_背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3496题目大意:题目给定n部电影,每部电影有时长和量化的意义,要求看m部电影,并且市场控制在l以内,转化为背包问题,让我们在n件物品中找正好m件物品塞进容量为l的包中,求最大的价值。解题思路:这题写得不好,首先是看错题目了,把正好m件物品看成最多m件物品,Wa了好原创 2012-05-30 13:29:21 · 844 阅读 · 0 评论 -
Poj 1276 Cash Machine (DP_背包)
题目链接:http://poj.org/problem?id=1276题目大意:一台免费的现金输出机器,先输入一个金额sum,里面有n种货币,面值为val[i],数量为num[i],问最多输出多少现金?(当然输出越多越好,免费的!)解题思路:由于sum为10万,num[i]小于1000,怕用暴力地超时,所以用了多重背包来解:sum是背包容量,n种货币就是n个原创 2012-05-31 09:21:53 · 940 阅读 · 0 评论 -
Poj 1837 Balance (DP_背包)
题目链接:http://poj.org/problem?id=1837题目大意:天平平衡问题,给定m个可以放置砝码的位置,左边为负数,右边为正数,然后给定n个砝码,重量从1..25不等,位置和重量都不会出现相同的值。最后问让天平平衡的放置方法数。解题思路:将砝码的重量乘以各个位置得到一个n*m的矩阵,表示第i个砝码在第j个位置的权值,算出权值后每一行算一组,原创 2012-05-31 00:10:52 · 1627 阅读 · 0 评论 -
Poj 3211 Washing Clothes (DP_背包)
题目链接:http://poj.org/problem?id=3211题目大意:出题者无比嚣张地show幸福。他们夫妻两洗衣服,衣服有m种颜色,每种颜色又有若干件,每件衣服洗完需要特定的时间,要求每种颜色放在一起洗,洗完才能洗其他衣服。最后问洗完需要的最少时间。解题思路:由于每种颜色必须分开洗,那我们可以把同一种颜色的分到一个组内,这样分开计算时间再累加起来原创 2012-06-01 00:11:23 · 736 阅读 · 0 评论 -
Poj 2392 Space Elevator (DP_背包)
题目链接:http://poj.org/problem?id=2392题目大意:给定n种积木,每种积木都有一个高度hi,一个数量numi,还有一个限制条件,这个积木所在的位置不能高于maxhi,问能叠起的最大高度。解题思路:一看到题目觉得水题,之前做的背包容量都是固定的,这题容量是根据每个物品的maxhi而定,枚举容量的时候改动下就可以。于是乎开始敲代码,几原创 2012-06-01 15:32:29 · 681 阅读 · 0 评论 -
Uva 624 CD (DP_背包)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=565题目大意:很标准的01背包,但要输出路径。解题思路:由于要输出路径,不能再用滚动数组,要用二维数组,至少我没想到怎么用滚动数组实现。在转移的时候记录下pa原创 2012-06-01 00:22:47 · 1144 阅读 · 2 评论 -
Poj 1947 Rebuilding Roads (DP_树形DP(背包))
题目链接:http://poj.org/problem?id=1947题目大意:给定一棵节点数为n的树,问从这棵树最少删除几条边使得某棵子树的节点个数为p,1解题思路:树形DP + 背包。由于给定的结构是树,就要想到树的递归特性,而树形dp的优美之处是可以利用子树的状态来转移,来求得根的状态。本题要求求最少删除几条边使得子树节点个数为p,我们只要算出每个以节原创 2012-06-05 00:39:48 · 2579 阅读 · 0 评论 -
Poj 3181 Dollar Dayz (DP_背包)
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=3181题目大意:给定一个数p,要求用K种币值分别为1,2,3...K的硬币组成p,问方案数,1,2,2和2,2,1算一种方案即与顺序无关,n 解题思路:这不是很朴素的完全背包吗?只是价值是1.k,反而更简单。自己写了几组测试数据感觉没什么问题就交,没想到返回原创 2012-06-05 16:28:19 · 1278 阅读 · 3 评论 -
Poj 2184 Cow Exhibition (DP_背包)
题目链接:http://poj.org/problem?id=2184题目大意:给定n头牛,每头有属性智商和幽默感,这两个属性值有正有负,现在要从这n头牛中选出若干头使得他们的智商和与幽默感和不为负数,并且两者两家和最大,如果无解输出0,n解题思路:变形的01背包,其实问题的本质是保证智商和幽默感和不为负数情况下的最大和。如果一个为负数那肯定不符合情况,我们原创 2012-06-05 10:52:55 · 996 阅读 · 0 评论 -
Poj 1787 Charlie's Change (DP_背包)
题目链接:http://poj.org/problem?id=1787题目大意:给定一个数p,要求用四种币值为1,5,10,25的硬币拼成p,并且硬币数要最多,如果无解输出"Charlie cannot buy coffee.",1解题思路:看到题目的第一想法是多重背包,把币值和p看成容量,硬币数看成价值,问题就转换为最容量为p的背包中价值最大为多少?刚入手原创 2012-06-05 13:08:53 · 1059 阅读 · 2 评论 -
Poj 3260 The Fewest Coins (DP_背包)
题目链接:http://poj.org/problem?id=3260题目大意:农民John去购物,市面流行的硬币有n种,每种面值mon[i],John有num[i]个,现在他要到煤老板的店里去买m元的东西,大家都知道煤老板不差钱,每种硬币都有无数个,煤老板找钱的话都可以找最少数量的硬币给John,现在John想要自己出的硬币数和老板找的硬币数最小,如果找不到符合情况的解,输出原创 2012-06-01 17:20:17 · 1637 阅读 · 0 评论 -
Poj 3624 Charm Bracelet (DP_背包)
题目链接:http://poj.org/problem?id=3624题目大意:给定n个物品,每个物品有重量和价值,问在重量和不超过m的时候能组成的最大价值是多少?解题思路:这不是赤裸裸的01背包问题吗?虽然数据看起来很大,但都是纸老虎,其实数据很水的。状态转移方程:dp[j] = max(dp[j],dp[j-cost[i]]+val[i])。复杂度O(V原创 2012-05-31 09:36:47 · 853 阅读 · 0 评论 -
Hdu 1561 The more, The Better (DP_树形DP(背包))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1561题目大意:给定n个地点,每个地点藏有cost[i]的宝物,取得某些宝物有时需要先取其他宝物,现在让我们选m个地点问最多可以选多少宝物?解题思路:和Poj1155、1947一样,都是在树形结构上进行分组背包处理。本题的依赖关系可以理解成树边,到达子节点必须先经原创 2012-06-06 13:41:35 · 2557 阅读 · 2 评论 -
【DP_树形DP专辑】
what?输入文章内容,这不是文章内容吗?原创 2012-06-07 13:58:09 · 104 阅读 · 0 评论 -
Hdu 2196 Computer (DP_树形DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196题目大意:给一棵树,每条树边都有权值,问从每个顶点出发,经过的路径权值之和最大为多少?每条树边都只能走一次,n 解题思路:比较复杂的树形DP,刚看到题目一点思路都没有,但一想金华赛区的那道B题,似乎有点相似,那题是先深搜一次看每个节点拥有多少子孙节点和子孙节原创 2012-06-08 00:50:22 · 4141 阅读 · 2 评论 -
Hdu 1011 Starship Troopers (DP_树形DP(背包))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011题目大意:给一棵树,有n个顶点,n-1条边,每个顶有一些bugs,现在要用炸弹(就用炸弹吧)轰炸,一个炸弹最多炸死20只bug,如果某个地方为0只bug,可以滚到下一个节点去炸,n解题思路:比较简单的树形DP+背包。本题的依赖关系可以理解成树边,到达子节点必原创 2012-06-09 08:32:48 · 2534 阅读 · 2 评论 -
Hdu 1296 迷宫城堡 (图论_强连通分量)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269题目大意:给定一个迷宫,问迷宫中的两个地点能否两两相连,顶点n解题思路:Tarjan模板题。今天做树形DP的时候遇到双连通缩点,不会做,就来学习下图论的强连通分量和双连通分量,多学些新算法,对开拓思维也有好处。Tarjan算法的核心是通过一个深搜来实现,简单原创 2012-06-08 23:58:01 · 1443 阅读 · 0 评论 -
Poj 1625 Censored! (字符串_AC自动机(DP))
题目链接:http://poj.org/problem?id=1625题目大意:给定n个不同的字符,用这些字符组成长度为m的字符串但是不能出现p个危险字符串中的任何一个,危险字符串也不可以作为子串,问方案数有几种。解题思路:这题可以用AC自动机+DP+高精度解。先不管那些危险字符串,本题可理解为n叉树,从根节点开始到叶子节点共有m层,方案数为n^m种,但是有原创 2012-05-22 01:42:21 · 1301 阅读 · 0 评论 -
Poj 2486 Apple Tree (DP_树形DP(背包))
题目链接:http://poj.org/problem?id=2486题目大意:给定一棵节点数为n的树,每个节点都放有一些苹果,现在从根节点1开始走,每走一条边算一步,每经过一个节点就能吃掉这个节点的苹果(吃掉就没了),问走m步最多能吃几个苹果?解题思路:树形DP + 分组背包。花了一下午A掉这题,没有一点优越感,只觉得这题好猥琐。题目要求从根节点开始往下走原创 2012-06-11 02:12:36 · 950 阅读 · 0 评论 -
Hdu 3341 Lost's revenge (字符串_AC自动机(DP))
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3341题目大意:题目描述十分幽默,特别是Spring Brother,笑翻了。言归正传,题目给出n个数论DNA序列,含这些序列则可以增加数论水平,含几个就几级,再给出一个长为L的基因,问这个基因重组之后的最大数论水平是多少,如果一个DNA序列在基因中出现多次也要累加起来。原创 2012-05-22 17:16:39 · 1526 阅读 · 0 评论 -
Poj 2778 DNA Sequence (字符串_AC自动机(DP))
题目链接:http://poj.org/problem?id=2778题目大意:给定‘A''C''G''T'四个碱基组成的m个病毒字符串,求碱基组成的长度为n的不包含病毒串的字符串种数,结果模以10万。解题思路:状态转移方程很容易想:if (j->next非危险节点) dp[i+1][j->next] += dp[i][j];(i表示长度,j->next为自原创 2012-05-23 23:59:59 · 847 阅读 · 0 评论 -
Uva 10405 Longest Common Subsequence (DP_最长递增子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1346题目大意:赤裸裸的最长递增子序列。解题思路:状态转移方程:if (arr[i] == brr[i]) dp[i][j] = max(dp[i][j],d原创 2012-05-24 11:51:22 · 684 阅读 · 0 评论 -
Uva 111 History Grading (DP_最长公共子序列)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=47题目大意:给定每个时间对应的历史事件,时间是递增的,然后再给若干学生对这些事件的对应时间猜测,问最后符合时间顺序的最多历史事件是几个?原创 2012-05-24 01:18:29 · 1319 阅读 · 0 评论 -
Uva10003 Cutting Sticks (DP_区间合并)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=944题目大意:给定一根长为l的木头,要求在木头的n个位置锯断它,每次锯断一段木头,就把这段木头的长度累加起来输出。解题思路:如果不转原创 2012-05-24 14:16:19 · 788 阅读 · 1 评论 -
Uva 674 Coin Change (DP_简单)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&page=show_problem&problem=615题目大意:给定一个数n,问5个数1、5、10、25、50相加之和为n的组合个数,1,5,5和5,5,1算一种..解题思路:分5次原创 2012-05-24 12:41:53 · 1610 阅读 · 2 评论