随笔分类 -  单调队列

摘要:对作文库中的串建出广义SAM,然后显然可以二分答案,二分之后考虑暴力dp,设f[i]为前i位最长匹配长度,显然有f[i]=max(f[i-1],f[j]+i-j) (i-j>=l&&j+1~i能在作文库中匹配)。在SAM上跑并记录匹配长度,单调队列优化dp即可。 阅读全文
posted @ 2019-05-08 01:22 Gloid 阅读(187) 评论(0) 推荐(0)
摘要:考虑点分治。对子树按照根部颜色排序,每次处理一种颜色的子树,对同色和不同色两种情况分别做一遍即可,单调队列优化。但是注意到这里每次使用单调队列的复杂度是O(之前的子树最大深度+该子树深度),一不小心就退化成O(n2)。于是我们按照同颜色最大深度为第一关键字、子树深度为第二关键字排序,每次处理完一种颜 阅读全文
posted @ 2018-11-23 21:17 Gloid 阅读(284) 评论(0) 推荐(0)
摘要:首先kmp求出每个子串能放在哪些位置。接下来的两部分贪心和状压都可以,各取比较方便的。 最大值考虑贪心。考虑枚举子串的左端点出现顺序,在此基础上每个子串的位置肯定都应该尽量靠前,有是否与上个子串有交两种选择,如果有交一定会使交集最小,于是枚举第一个子串出现位置并暴力枚举4!*23种情况。 最小值考虑 阅读全文
posted @ 2018-11-02 13:38 Gloid 阅读(292) 评论(0) 推荐(0)
摘要:看到这个式子当然先二分答案。得max-min-(j-i+k)ans>=0。 显然max-min相同的情况下所选区间长度越短越好,所以max和min都应该取在边界。那么实际上我们根本不用管端点是否真的是max或min,因为即使不是将他们计入也不会对最终答案造成影响。不妨设右端点是max,则要最大化aj 阅读全文
posted @ 2018-10-30 21:28 Gloid 阅读(165) 评论(0) 推荐(0)
摘要:显然可以dp。显然可以单调队列优化一下。 阅读全文
posted @ 2018-09-02 13:45 Gloid 阅读(164) 评论(0) 推荐(0)