随笔分类 - 动态规划---基础DP
摘要:题目链接: https://cn.vjudge.net/problem/POJ-3267 题目大意: 题意就是给出一个主串,和一本字典,问最少在主串删除多少字母,可以使其匹配到字典的单词序列。 PS:是匹配单词序列,而不是一个单词 解题思路: dp[i]表示从message中第i个字符开始,到第L个
阅读全文
摘要:题目链接: https://cn.vjudge.net/problem/POJ-1080 题目大意: 给定两组序列,要你求出它们的最大相似度,每个字母与其他字母或自身和空格对应都有一个打分,求在这两个字符串中插入空格,让这两个字符串的匹配分数最大 解题思路: 类似LCS,以dp[i][j]表示s1前
阅读全文
摘要:题目链接: https://cn.vjudge.net/problem/POJ-1260 题目大意: 给定一系列的不同质量项链上的珠宝数量和价格(按质量升序给出,同时价格也升序)。可以用价格高的珠宝来替代价格低的珠宝。这样或许可以节省总钱数。而题目就是要求出购买所有数量的珠宝所需支付的最低价格。 解
阅读全文
摘要:题目链接: https://cn.vjudge.net/problem/POJ-1836 题目大意: 题意:令到原队列的最少士兵出列后,使得新队列任意一个士兵都能看到左边或者右边的无穷远处。就是使新队列呈三角形分布就对了。 解题思路: 求出每一位结束的最长上升子序列和每一位开始的最长下降子序列,求出
阅读全文
摘要:题目链接: https://cn.vjudge.net/problem/POJ-1276 题目大意: 有各种不同面值的货币,每种面值的货币有不同的数量,请找出利用这些货币可以凑成的最接近且小于等于给定的数字cash的金额。 解题思路: 多重背包+二进制优化 dp[i]为真表示可以凑出i元 注意dp[
阅读全文
摘要:题目链接: https://cn.vjudge.net/problem/POJ-1159 题目大意: 题意很明确,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。 解题思路: 设原序列S的逆序列为S' 最少需要补充的字母数 = 原序列S的长度 — S和S'的
阅读全文
摘要:详见:https://blog.csdn.net/hrn1216/article/details/51534607 假设我们用c[i,j]表示Xi 和 Yj 的LCS的长度(直接保存最长公共子序列的中间结果不现实,需要先借助LCS的长度)。其中X = {x1 ... xm},Y ={y1...yn}
阅读全文
摘要:百练2757: 题目描述: 对于给定的序列,求出最长上升子序列的长度。 题目链接:http://bailian.openjudge.cn/practice/2757 解题思路 一、动态规划 1. 找子问题 错误找法: “求序列的前n个元素的最长上升子序列的长度”是个子问题,但这样分解子问题,不具有“
阅读全文
摘要:题目链接: 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
阅读全文
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目大意: 求最大子段和,并且输出最大子段和的起始位置和终止位置。 思路: 根据最大子段和基本方法,直接在线处理(如果对最大子段和不熟悉,点这里) 需要增加两个变量,start和finish,记
阅读全文
摘要:问题描述: 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和.例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4]. 1.穷举法 枚举左右区间然后遍历该区间求解,时间复杂度O(n3)
阅读全文
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1087 题目大意: 求递增子序列最大和 思路: 直接dp就可以求解,dp[i]表示以第i位结尾的递增子序列最大和,初始化dp[i] = a[i],转移方程dp[i] = max(dp[i], a[i]
阅读全文

浙公网安备 33010602011771号