摘要: dp总结 线性dp 特点:由已知的子问题递推过来,是有方向性的,且有明显的维度。 求解过程:定义dp -> 确定目标 -> 寻找转移方程 -> 考虑优化(有些题不需要) 怎么确定转移方程:考虑两种思考方式:1.如何得出一个状态 2.已知这个状态怎么推其它状态 时间复杂度:直接根据for来乘计算即可 阅读全文
posted @ 2019-08-21 21:36 rua-rua-rua 阅读(132) 评论(0) 推荐(0) 编辑
摘要: LCIS(最长公共上升子序列) 方案输出+dp储存最优值优化 分析: 这道题明显是将LCS和LIS结合,那么可以想到(我没想到)定义dp[ i ] [ j ]是a中1~i 和 b中1~j 以 b[ j ] 结尾的最长LCIS长度。 转移:当a[ i ]==b[ j ]时,要在小于j中找到一个最大的d 阅读全文
posted @ 2019-08-21 21:02 rua-rua-rua 阅读(360) 评论(0) 推荐(0) 编辑
摘要: Making the Grade(POJ3666) 题意: 给出长度为n的整数数列,每次可以将一个数改成另一个数,代价是两数之差的绝对值,求最少要多少代价可以将其变成单调增或者单调减(不严格)。 分析: dp定义:dp[i][j]表示已经处理完前i个数,第i个数被改成了j dp转移:dp[i][j] 阅读全文
posted @ 2019-08-21 19:23 rua-rua-rua 阅读(192) 评论(0) 推荐(0) 编辑
摘要: LIS(O (n*logn)) 题目 lower_bound & upper_bound用法 假设我们查找x,那么:lower_bound会找出序列中第一个大于等于x的数upper_bound会找出序列中第一个大于x的数但是!!只能对升序的序列找,如果是降序的,加一个greater<int>() n 阅读全文
posted @ 2019-08-21 19:09 rua-rua-rua 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题目链接:洛谷P1948[USACO08JAN]电话线Telephone Lines 分析: 题意:在无向图中找到一条路径,可以使k条边花费0,最后花费即为剩下的边中最大值,使这个最大值最小。 1.使最大值最小的问题明显可以二分一个mid。 2.由贪心可知,使k条花费为0必然是最大的k条边,即要求的 阅读全文
posted @ 2019-08-21 14:27 rua-rua-rua 阅读(137) 评论(0) 推荐(0) 编辑