随笔分类 - 数据结构——树状数组/线段树/ST表
摘要:XII.CF1037H Security 一开始费尽心思写了个假的SA做法出来,后来才想到SAM做法…… 我们考虑贪心地求出比当前询问的串 略大的串的方法:即先找有没有前 位全相同,第 位最小的串存在于 中,如果没有再去找前 \(|
阅读全文
摘要:XI.CF30E Tricky and Clever Password 一开始看错题,硬生生把难度上升了很多…… 所以以下的解法是按照我看错的题意进行的,即 ,其中 是奇回文串, 与 相反
阅读全文
摘要:XXXIII.CF547E Mike and Friends 实际上是一道很蠢的问题。 我们直接在后缀数组上二分,求出所有拥有串作为前缀的后缀所在的区间,则问题就被转换为某一区间中值在范围内的数的个数。显然是二维数点问题,于是直接离线后树状数组解决。 代码: #include
阅读全文
摘要:XXXII.CF1063F String Journey 题解
阅读全文
摘要:XXXI.CF666E Forensic Examination 题解
阅读全文
摘要:XXIX.CF700E Cool Slogans 题解
阅读全文
摘要:XXIII.[NOI2018]你的名字 题解
阅读全文
摘要:XVIII.[HEOI2016/TJOI2016]字符串 作为一个理智正常的OIer,二维数点的题说什么都应该离线线段树通过而不是大力搞主席树呀((( 我们发现这题询问中中这个“”是不重要的,只需要把最终结果同即可,因此忽略不
阅读全文
摘要:X.[SCOI2012]喵星球上的点名 我居然做出了这题……难以置信! 首先,思路很明显是把所有串全怼一起(包括名字和询问串),加上分隔符,然后跑一遍后缀数组。 我们仍然可以用单调栈求出关于每个询问串与它相同的区间。即,如果以询问串为前缀的那个后缀的是的话,它的合法区间$[L,R]
阅读全文
摘要:XXV.Sasha and Algorithm of Silence's Sounds 假设我们把区间作为子区间的区间,都是不合法的。 于是我们对于每个位置,都可以找出其最右边的不成环的位置。
阅读全文
摘要:CLIII.[SDOI2017]切树游戏 设 表示 子树中,所有包含 且异或和为 的连通块数量, 表示 子树中异或和为 的连通块数量。显然,有公式 \(f_{x,1,i}=f_{x,0,
阅读全文
摘要:CXLV.[九省联考2018]秘密袭击coat 首先先讲一种暴力但能过的方法。 很容易就会往每个值各被计算几次的方向去想。于是我们枚举每个节点,计算有多少种可能下该节点是目标节点。 为了避免相同的值的影响,我们在值相同的点间也决出一种顺序,即,若两个值相同的点在作比较,依照上文定下的那种顺序决定。
阅读全文
摘要:CXLIV.[IOI2018] meetings 会议 被人坑了说这题是CDQ分治的题,一小时想不出来开了题解发现是道DP 大概不会有人像我一样一开始想了极其诡异的DP,然后发现可以用莫队+树剖优化到 ,但是这复杂度估计比 还差…… 扯远
阅读全文
摘要:LXXVIII.[USACO12OPEN]Bookshelf G 转移很简单,直接设表示前个位置书架的最小高度和即可。 考虑转移。 我们有暴力的公式 \(f[i]=\min\limits_{j=1}^{i}\Big\{f_{j-1}+\max\{h_j,\dots,h_i\}\Bi
阅读全文
摘要:LXXVII.[CmdOI2019]任务分配问题 这道题与LXI.CF868F Yet Another Minimization Problem长得很像。实际算法也类似。 首先,题意就是把所有数划分成段,使得每段内部正序对数量之和最少。设内部正序对数量
阅读全文
摘要:LXXIV.[USACO18DEC]Sort It Out P 集合中的数一定是某一条LIS的补集,这点还是比较好想的。 我们要集合的字典序最小,就是让集合的补集的字典序最大。 最大就可以考虑按位处理LIS中的数。 我们从后往前求LIS。我们设表示以当前位置开头的LIS的长度以及数量(类
阅读全文