DP优化
guapisolo
已经弃掉CSDN转博客园了https://www.cnblogs.com/guapisolo/
展开
-
[USACO17FEB] Why Did the Cow Cross the Road II P (树状数组优化DP)
题目大意:给你两个序列,你可以两个序列的点之间连边要求:1.只能在点权差值不大于4的点之间连边2.边和边不能相交3.每个点只能连一次设表示第一个序列进行到 i,第二个序列进行到 j,最多连的边数,容易得到方程:不连边:连边:实际是这样的,每个位置如果想连边,就要从能连边的位置之前找最大值,即直接转移不可取,由于最多只从9个位置转移,我们可以缩减一维,用记录b序列进...原创 2018-07-29 21:54:35 · 321 阅读 · 0 评论 -
bzoj 1030 [JSOI2007]文本生成器 (Trie图+DP)
题目大意:给你一堆字符串,一个串不合法的条件是这些字符串中任意一个是这个串的子串,求合法的串的数量其实这道题比 [HNOI2008]GT考试 那道题好写一些,但道理是一样的只不过这道题的答案可以转化为 所有可能的字符串(26^m)数量 - 不合法的字符串数量定义f[i][j]表示匹配到了第i个字符,现在在Trie树上匹配到了第j个节点的方案数GT考试是跳Next,每次找出 和 插入...原创 2018-09-22 19:54:29 · 221 阅读 · 0 评论 -
bzoj 1009 [HNOI2008]GT考试 (KMP+矩阵乘法)
题目大意:给定一个由数字构成的字符串A(len<=20),让你选择一个长度为n(n是给定的)字符串X,一个合法的字符串X被定义为,字符串X中不存在任何一段子串与A完全相同,求互不相同的合法的字符串L的数量第一眼看就没啥思路....瞅了一眼题解,是KMP优化DP,然后再用矩阵优化DP思路还是不难的,首先用KMP求出原字符串的next数组,再用next转移定义f[i][j]是当前X串...原创 2018-09-22 11:02:08 · 291 阅读 · 0 评论 -
bzoj 4518 [Sdoi2016]征途 (斜率优化DP)
我犯了sb错误然后调了1个小时......队列写错了斜率k递增,b取最小值,队列维护凸包即可f[0]的预处理好像有些奇怪???我把inf调大就过了???#include <cstdio>#include <algorithm>#include <cstring>#define il inline#define ll long long#d...原创 2018-09-12 15:15:59 · 135 阅读 · 0 评论 -
bzoj 1010 [HNOI2008]玩具装箱toy (斜率优化DP)
队列维护下凸包裸题式子不太好推,但其实不用把式子全展开的.....k单调递增,x单调递增,队列维护一下就行了因为f[i]期望最小值,所以维护下凸包好像记录一下凸包的坐标能减少常数#include <cstdio>#include <algorithm>#include <cstring>#define il inline#defin...原创 2018-09-11 20:21:12 · 139 阅读 · 0 评论 -
bzoj 1911 [Apio2010]特别行动队 (斜率优化DP)
斜率优化DP裸题,DP方程很简单就不给了优化一下,整理式子成y=kx+b的形式发现x单调递增,斜率k单调递减,用一个队列维护凸包就行啦f[i]和b成正比,而f[i]期望最大值,所以维护上凸包#include <cstdio>#include <algorithm>#include <cstring>#define il inline#d...原创 2018-09-11 18:59:37 · 135 阅读 · 0 评论 -
bzoj 3437 小P的牧场 (斜率优化DP)
题目大意:有n牧场排成一行,标号从1~n,每个牧场都可以放一个控制站,在第i个牧场放控制站需要花费a[i],控制站能够控制从它开始一直到它左边最靠近它的控制站之间的所有牧场,每个牧场放养量是b[i],这个牧场被它右侧离它最近控制站控制所需要支出的花费是它到牧场的距离d*b[j],在保证所有牧场都被控制的情况下,求最小花费定义f[i]是在第i个牧场放控制站的最小花费设j是上一个控制站的位置,...原创 2018-09-10 18:36:23 · 193 阅读 · 0 评论 -
hdu 3336 Count the string (KMP+DP)
题目大意:给你一个字符串,求所有前缀在原串的出现次数之和打个表推推,KMP+DP随便水水就过了吧#include <cstdio>#include <algorithm>#include <cstring>#define N 200100#define mod 10007#define ui unsigned intusing namesp...原创 2018-08-16 14:05:56 · 106 阅读 · 0 评论 -
hdu 3689 Infinite monkey theorem (KMP+DP)
题目大意:一群猴子打字,给定猴子输入每种字符的概率以及输入次数,求输出的文本中出现指定字符串的概率强烈建议看这篇文章:http://www.matrix67.com/blog/archives/366 里面对这道题的分析很详细思路比较清奇,我们先用KMP求出指定串的next,接下来是DP的过程表示输入了i个字符,匹配到了第j个的概率这道题是一个贪心的思路,我们在第j位可以填上任意字...原创 2018-08-16 13:26:56 · 250 阅读 · 0 评论 -
hdu 5763 Another Meaning (KMP/哈希+DP)
题目大意:给你两个串,一长一短,如果长串中某个子串和短串完全相同,则这个子串可以被替换成"#",求长串所有的表达形式.......比如"hehehehe"和"hehe",则有5种情况,"#hehe","he#he","hehe#","##","hehehehe"首先我们KMP/哈希找出长串中所有可以作为和短串结尾匹配成功后的位置然后可以得原创 2018-08-15 19:02:00 · 148 阅读 · 0 评论 -
bzoj 1499 [NOI2005]瑰丽华尔兹 (单调队列优化DP)
题目大意:给你一个n*m棋盘(n,m<=200),有一个人从给定的点s,e出发,有一些坏点不能走,一共给定k段连续的时间(k<=200),在某一段时间之内它只能向一个给定的方向移动,在某一时刻,它可以移动或者不移动。求碰到坏点之前/总时间结束时,最长移动的距离。朴素DP的方法是: 表示在时间点t时,在位置(i,j)时已经走过的最长距离,i' j'表示这一步移动前的位置得到方...原创 2018-10-06 10:18:22 · 244 阅读 · 0 评论