随笔分类 -  动态规划---基础DP

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