DP
文章平均质量分 59
CuriousLiu
这个作者很勤奋,什么都没留下...
展开
-
BJUTACM 1032:最大子段和
最大字段和问题可以说是最经典的动态规划问题之一,自己暂时认为如果采用普通方法时间复杂度可能会高达O(n!) (纯属本菜鸡猜测Orz)但是如果采用动态规划方法,只需要遍历一次 即时间复杂度为O(n)即可解决这一问题其基本思想是,采用两个变量,假设为temp 和max,temp每次增加入新的元素,之后首先和max进行比较,如果大于max则替换,如果加入新的元素后,temp元素小于了0,则此时开始,如果...原创 2018-05-10 19:54:05 · 194 阅读 · 0 评论 -
BJUTACM y112:最长上升子序列(包含一系列的最长上升子列问题)
最长上升子列包含一系列的问题 统一的思路是: 维护一段单调上升的序列,如果新进入的数大于这段单调上升序列最后一个数,就加入尾部 (最后一位可以使用count记录) 如果新进入的数小于等于单调上升序列中的最后一位,就在从头到尾的序列中二分查找(有助于降低时间复杂度),找到合适的区间后,替换掉应在位置后一位的数字 以 1 7 2 9 3 5 6 4 这段序列为例 1 7 进入...原创 2018-05-18 14:37:26 · 203 阅读 · 0 评论 -
POJ 1163.The Triangle
题目大意:找出最长路的值d[i][j]代表当前元素的真实值,从来没有被改变,而二维数组maxSum作为记忆化的容器,在每个层,随着层数的上升记忆住了当前位置的最大路值,等于是分成了很多个小子问题,这也是动态规划问题的基础思想,这种题还有递归做法,但是由于可能会重复加,导致出现问题题目链接#include <iostream>using namespace std;in...原创 2018-07-23 23:24:52 · 341 阅读 · 0 评论 -
百练 2757:最长上升子序列
这个之前有过lower_bound的 NlogN解法,这里所写的方法主要是为了练习动态规划DP的使用这里的思路是,在这个位置之前找到比这个位置小的元素,获取其maxLen的值,找到一个最大的 加上1 之后把这个值赋值给maxLen[i] 题目链接//最长上升子列,O(N^2)的,动态规划解法#include <iostream>#include <cstring...原创 2018-07-24 01:34:40 · 303 阅读 · 0 评论 -
POJ 1458.Common Subsequence
最长公共子序列,典型的动态规划问题,需要认真分析maxLen[i][j] 代表s1 s2分别位于数学上的i j 位时 具有最长连续公共子序列的长度这样可以说,在i为0或者j为0时 maxLen[i][j] = 0 即没有最长公共子序列精髓的代码在这一部分 if(s1[i-1]==s2[j-1])//如果这两个位置的元素相等 { maxlen[i][j] =...原创 2018-07-24 22:18:22 · 181 阅读 · 0 评论 -
百练 股票买卖
这是一道典型的DP题目,需要模仿这种题继续练习,一开始自己的思想出现了点问题,后来发现需要两个数组进行记录第一个数组用来记录从1-i区间内 当前的 最大最小值之差第二个数组用来记录从i-n区间内,当前的最大最小值之差由于股票只能按照时间买入和出售,并且需要统计最大的两次,正好就采用这种DP方法题目链接实现的代码有点乱,因为思路有些混乱,在实现过程中角标也是一个难点// 作...原创 2018-07-25 20:38:35 · 214 阅读 · 0 评论 -
BJUTACM 1031:切割回文
这个题是DP的经典题目,主要思想及状态转移在于:一个位置需要切割的刀数,等于从之前到他最长的回文序列,之前的那个元素切割的刀数+1,或者如果他与之前的无法构成回文序列,则等于之前那个位置所需要切割的刀数+1DP太不熟练了......真的需要多练了...题目链接#include <iostream>#include <cstring>using namesp...原创 2018-07-27 11:43:28 · 537 阅读 · 0 评论 -
POJ 3624.Charm Bracelet(0-1背包问题)
这个就是0-1背包问题的模板,主要使用一个f[m]数组,表示在背包剩余m容量时,此时所能取得的最大价值,在循环中,状态转移成for(int i=1;i<=n;i++){ for(int j=m;j>=w[i];j--) { dp[j] = max(dp[j],dp[j-w[i]]+d[i]); }} 这个还是没完全理解,但是dp问题一般都是用一个dp数组,来表示...原创 2018-07-27 12:51:53 · 290 阅读 · 0 评论