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

浙公网安备 33010602011771号