随笔分类 -  动态规划

摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2191 题目大意:中文题 思路: 裸的多重背包 阅读全文
posted @ 2018-04-14 14:13 _努力努力再努力x 阅读(183) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1059 题目大意: 就是有价值1、2、3、4、5、6的硬币各多少个,然后让你判断能否把他们分成价值相等的两部分。 思路: 多重背包的模板 阅读全文
posted @ 2018-04-14 14:02 _努力努力再努力x 阅读(139) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/POJ-3280 题目大意: 给出一个由m中字母组成的长度为n的串,给出m种字母添加和删除花费的代价,求让给出的串变成回文串的代价。 思路: 区间DP, 我们知道求添加最少的字母让其回文是经典dp问题,转化成LCS求解。这个是一个很明 阅读全文
posted @ 2018-04-14 13:26 _努力努力再努力x 阅读(145) 评论(0) 推荐(0)
摘要:所谓区间dp,顾名思义就是在一段区间上的动态规划。它既要满足dp问题的最优子结构和无后效性外,还应该符合在区间上操作的特点。我的理解是往往会对区间进行合并操作。抑或是单个元素(可看成一个小区间)跨区间进行操作。例如括号匹配问题,石子合并问题(通过多次的相邻合并,最后实质上会产生跨区间的合并,如果你把 阅读全文
posted @ 2018-04-14 13:23 _努力努力再努力x 阅读(194) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/UVA-674 题目大意: 有5种硬币, 面值分别为1、5、10、25、50,现在给出金额,问可以用多少种方式组成该面值。 思路: 每种硬币无限个,就是完全背包的题目,设dp[i][j]表示前i种纸币凑成价值为j的种数, 状态转移方程 阅读全文
posted @ 2018-04-14 00:02 _努力努力再努力x 阅读(245) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/POJ-3616 题目大意: 在一个农场里,在长度为N个时间可以挤奶,但只能挤M次,且每挤一次就要休息t分钟; 接下来给m组数据表示挤奶的时间与奶量求最大挤奶量 思路: dp[i]表示完成第i个任务的挤奶量,之后的所有区间左端点大于等 阅读全文
posted @ 2018-04-13 23:16 _努力努力再努力x 阅读(145) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/POJ-2385 题目大意: 两颗苹果树每一分会有树落下苹果,有人去接,但是来回两个树之间的次数是一定的,所以求出在最大次数时最多能接到多少苹果。 思路: dp[i][j]表示在时间i,已经来回了j次时的最大苹果数目。 初始化dp[1 阅读全文
posted @ 2018-04-13 22:48 _努力努力再努力x 阅读(122) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/POJ-2229 题目大意: 给定一个N,只允许使用2的幂次数,问有多少种不同的方案组成N。 思路: 处理出2的幂次方的所有的数字,当做物品,每个物品次数不限,求凑出体积为N的方案数 类似完全背包,先枚举物品,再正序枚举体积,转移状态 阅读全文
posted @ 2018-04-13 21:53 _努力努力再努力x 阅读(344) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目大意: 给出小猪钱罐的重量和装满钱后的重量,然后是几组数据,每组数据包括每种钱币的价值与重量 要求出重量最少能装满钱罐时的最大价值 思路: 完全背包裸题,dp[j] = min(dp[j], 阅读全文
posted @ 2018-04-13 21:04 _努力努力再努力x 阅读(185) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/POJ-2923 题目大意: 有n个货物,给出每个货物的重量,每次用容量为c1,c2的火车运输,问最少需要运送多少次可以将货物运完 思路: 第一次做状态压缩(状态压缩基础知识传送门) 本题的解题思路是先枚举选择若干个时的状态,总状态量 阅读全文
posted @ 2018-04-12 19:44 _努力努力再努力x 阅读(442) 评论(0) 推荐(0)
摘要:代码中的i^(t&-t)就是在从右到左依次去掉i中的1(每次都只是在i的二进制基础上少了一个1) 阅读全文
posted @ 2018-04-12 19:36 _努力努力再努力x 阅读(227) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2639 题目大意: 求第k大背包。 思路: 由01背包递推式dp[i][j] = max(dp[i][j], dp[i - 1][j - w[i]] + v[i]),可知,需要求第k大背包的时候状态需要 阅读全文
posted @ 2018-04-11 15:45 _努力努力再努力x 阅读(136) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/POJ-2184 题目大意: 给出num(num<=100)头奶牛的S和F值(-1000<=S,F<=1000),要求在这几头奶牛中选出若干头,使得在其总S值TS和总F值TF均不为负的前提下,求最大的TS+TF值 思路: 可以把S当体 阅读全文
posted @ 2018-04-10 23:22 _努力努力再努力x 阅读(208) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目大意: 有一个强盗要去几个银行偷盗,他既想多投点钱,又想尽量不被抓到。已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率。求他最多能偷到多少钱? 思路: 这里的最大被抓概率,正 阅读全文
posted @ 2018-04-10 22:24 _努力努力再努力x 阅读(252) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/UVA-562 题目大意: 给定n个硬币,要求将这些硬币平分以使两个人获得的钱尽量多,求两个人分到的钱最小差值 思路: 它所给出的n个钱币加起来sum,将sum/2当作体积,求出在sum/2下的最大值,sum-2*dp[sum/2] 阅读全文
posted @ 2018-04-10 21:39 _努力努力再努力x 阅读(172) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/problem/UVA-624 题目大意: 这道题给定一个时间上限,然后一个数字N,后面跟着N首歌的时间长度,要我们 求在规定时间w内每首歌都要完整的播放,最多能播放多少时间。一个比较典型的背包问题, 但是要标记出我们选出的歌曲的编号,然后按顺序输出 阅读全文
posted @ 2018-04-09 23:15 _努力努力再努力x 阅读(144) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 题目大意: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金 阅读全文
posted @ 2018-04-09 22:12 _努力努力再努力x 阅读(182) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2602 https://vjudge.net/problem/POJ-3624 都是01背包的裸题 这里有01背包训练集,欢迎大佬来AK hdu2602: POJ-3624 阅读全文
posted @ 2018-04-09 22:07 _努力努力再努力x 阅读(180) 评论(0) 推荐(0)
摘要:背包九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附:USACO中的背包问题 前言 本篇文章是我(dd_engi)正在 阅读全文
posted @ 2018-04-09 21:28 _努力努力再努力x 阅读(10534) 评论(0) 推荐(5)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目大意: 求最大子段和,并且输出最大子段和的起始位置和终止位置。 思路: 根据最大子段和基本方法,直接在线处理(如果对最大子段和不熟悉,点这里) 需要增加两个变量,start和finish,记 阅读全文
posted @ 2018-03-30 17:15 _努力努力再努力x 阅读(536) 评论(0) 推荐(0)