随笔分类 -  动态规划-数据结构优化dp

摘要:题目链接 留坑,题解之后再补 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef double db; 5 const int N=3e5+10; 6 struct E { 7 int 阅读全文
posted @ 2021-04-03 20:16 jrltx 阅读(61) 评论(0) 推荐(0)
摘要:题意:给定只有黑白两种颜色的序列A,B,每次可以选择一段连续的长度不超过k的区间将其染成同一种颜色,求把序列A变成B所需的最小操作次数。 首先需要找出一些最优解的特征: 1.如果序列A的第一个颜色和B的相同,那么可以忽略掉。如果相反,那么必须将其染成相反的颜色。 2.最优解不会交叉,因为假如出现交叉 阅读全文
posted @ 2019-10-17 11:57 jrltx 阅读(278) 评论(0) 推荐(0)
摘要:题目链接 题意:你要打印一段字符串,往尾部添加一个字符需要花费p元,复制一段字符到尾部需要花费q元,求打印完全部字符的最小花费。 一开始想的贪心,后来发现忘了考虑p<q的情况了,还纳闷怎么不对..(囧) 设$dp[i]$为打印完前i个字符的最小花费 第一种转移是$dp[i+1]=min(dp[i+1 阅读全文
posted @ 2019-08-13 22:26 jrltx 阅读(315) 评论(0) 推荐(0)
摘要:题目链接 dp进阶之CDQ分治优化dp。 前置技能:dp基本功底,CDQ分治,树状数组。 问题等价于求二维最长上升子序列,是一个三维偏序问题(时间也算一维)。 设$dp[i]=(l,x)$为以第i枚导弹结尾的最优状态,$l$代表最长上升子序列长度,$x$代表长度为l的最长上升子序列数量,则$(l_0 阅读全文
posted @ 2019-03-17 18:43 jrltx 阅读(366) 评论(0) 推荐(0)
摘要:题意:给你一些邮票面值的集合,让你选择其中一个集合,使得“能用不超过n枚集合中的邮票凑成的面值集合S中从1开始的最大连续面值”(即mex(S)-1)最大。如果有多解,输出集合大小最小的一个;如果仍有多解,输出面值从大到小排序后最小的一个。 少数能用bitset优化的dp问题之一。设bs[i]为用不超 阅读全文
posted @ 2019-02-17 12:41 jrltx 阅读(275) 评论(0) 推荐(0)