摘要: 题面 Bzoj2329 解析 要支持区间翻转,就可以想到Splay了 但是要维护什么信息才能得到答案呢,将 “)” 看作1,”(“ 看作-1,记前缀最大和为$lx$, 后缀最小和为$rn$,那么 $ans = \left \lceil \frac{lx}{2} \right \rceil + \le 阅读全文
posted @ 2019-08-17 00:11 Mr_Joker 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题面 Bzoj4864 解析 合并序列相邻的两点,在序列中插入一个点,直接考虑Splay 先考虑如何完成操作3, 4 对于操作3,显然是区间最大减去区间最小,Splay维护一下即可 对于操作4,实际上就是求区间内相邻两数的差的绝对值的最小值(注意是绝对值,我一开始就写错了), 那么每个节点还需要维护 阅读全文
posted @ 2019-08-16 23:51 Mr_Joker 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题面 Bzoj3786 解析 上课讲稿上的例题 这道题是套路题,是括号序的应用,进入节点时打上$+1$标记, 退出时打上$-1$标记,这个是作为点权的系数 先看操作2, 需要更改父节点,就是把一段区间提取出来,插入另一个地方,显然可以用Splay维护,先提取区间,再把新父亲的$+1$点旋转至根,把区 阅读全文
posted @ 2019-08-16 23:37 Mr_Joker 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 题面 洛谷 解析 先奉上YYR的PPT 基本思路这张PPT已经讲清楚了,但还有一些其他的细节 我们确定了$L*t$与$L*(t+1)$后,显然不能暴力向后跳或向前跳。考虑向后跳最多跳$LCP(L*t, L*(t+1))$个点,因此这个可以用后缀数组+RMQ预处理出来,快速查询。再考虑向前跳,向前跳最 阅读全文
posted @ 2019-08-13 21:28 Mr_Joker 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 题面 Bzoj3879 解析 求后缀的LCP显然可以用后缀数组 考虑到任意两个后缀的$LCP$是它们在$sa$数组中两个之间的最小的$hei$, 即$LCP(i, j) = min\left \{ hei[k] \right \}(rk[i] < k \leqslant rk[j], rk[i] < 阅读全文
posted @ 2019-08-13 09:47 Mr_Joker 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题面 POJ3294 解析 翻译一下题意:给定n个字符串,求最长的字符串 S 的长度,使得 S 至少为其中 n/2+1 个字符串的子串, 并输出所有的S,若不存在,则输出'?'。(n<=100) 此题与POJ3261类似(我的博客),都是相同套路,后缀数组+二分答案 当然是把每个字符串连在一起,组成 阅读全文
posted @ 2019-08-12 21:13 Mr_Joker 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题面 POJ3261 洛谷P2852 解析 翻译一下题目要求:给定一个长为n(1≤n≤20000)的字符串,求其最长的至少出现了k次的可重叠子串长度。 答案显然具有二分性,如果长为$l$的串至少出现了k次,那么长为$l-1$的串也至少出现了k次,那么此题显然可以二分答案,那么如何check? 子串即 阅读全文
posted @ 2019-08-11 22:31 Mr_Joker 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 题面 Bzoj1559 解析 要求一个能包含所有字符串的串的个数,联想到AC自动机。 每一个节点需要存一个终点信息,即以这个点为结尾的字符串编号,这个需要开一个vector来存,因为一个节点需要继承fail节点所含的终点信息。 再看一下数据规模,发现很小,于是可以用一个维度记录状态进行状压DP,设$ 阅读全文
posted @ 2019-08-11 01:00 Mr_Joker 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题面 Bzoj4945 解析 一道非常有趣的2-sat题 一开始我就想偏了,我想给每一张地图建3个点分别代表A, B, C车,然后发现不会连边(就是菜到没看出来这道题怎么用2-sat),于是看了看思路,自己把代码搞出来,细细想来这个题还是很巧妙的 假如每一张地图建3个点,由于 d<=8 , 近$\f 阅读全文
posted @ 2019-08-08 01:03 Mr_Joker 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 题面 HDU1814 解析 2-sat裸题, 求字典序最小的解 我一开始试图用拓扑序求字典序最小的解,YY了一阵,打完代码,无论如何都要WA,于是弃疗了,至今不知为什么会错,也许是我太菜了吧,于是学习了一下dfs构造字典序最小解的方法,时间复杂度是O(nm)的 基本思路同拓扑序构造可行解一样,用染色 阅读全文
posted @ 2019-08-07 00:05 Mr_Joker 阅读(403) 评论(0) 推荐(0) 编辑