随笔分类 -  数据结构——树状数组/线段树/ST表

摘要:XII.CF1037H Security 一开始费尽心思写了个假的SA做法出来,后来才想到SAM做法…… 我们考虑贪心地求出比当前询问的串 T 略大的串的方法:即先找有没有前 |T| 位全相同,第 |T|+1 位最小的串存在于 [L,R] 中,如果没有再去找前 \(| 阅读全文
posted @ 2021-04-01 12:10 Troverld 阅读(57) 评论(0) 推荐(0) 编辑
摘要:XI.CF30E Tricky and Clever Password 一开始看错题,硬生生把难度上升了很多…… 所以以下的解法是按照我看错的题意进行的,即 S=T1+S1+T2+S2+T3+S3+T4,其中 S2 是奇回文串,S1S3 相反 阅读全文
posted @ 2021-04-01 12:08 Troverld 阅读(65) 评论(0) 推荐(0) 编辑
摘要:XXXIII.CF547E Mike and Friends 实际上是一道很蠢的问题。 我们直接在后缀数组上二分,求出所有拥有串sk作为前缀的后缀所在的区间,则问题就被转换为某一区间中值在[l,r]范围内的数的个数。显然是二维数点问题,于是直接离线后树状数组解决。 代码: #include 阅读全文
posted @ 2021-04-01 11:22 Troverld 阅读(59) 评论(0) 推荐(0) 编辑
摘要:XXXII.CF1063F String Journey 题解 阅读全文
posted @ 2021-04-01 11:20 Troverld 阅读(22) 评论(0) 推荐(0) 编辑
摘要:XXXI.CF666E Forensic Examination 题解 阅读全文
posted @ 2021-04-01 11:18 Troverld 阅读(35) 评论(0) 推荐(0) 编辑
摘要:XXIX.CF700E Cool Slogans 题解 阅读全文
posted @ 2021-04-01 11:13 Troverld 阅读(29) 评论(0) 推荐(0) 编辑
摘要:XXIII.[NOI2018]你的名字 题解 阅读全文
posted @ 2021-04-01 11:01 Troverld 阅读(41) 评论(0) 推荐(0) 编辑
摘要:XXII.[湖南集训]图森 题解 阅读全文
posted @ 2021-04-01 10:57 Troverld 阅读(44) 评论(0) 推荐(0) 编辑
摘要:XXI.[NOI2016]优秀的拆分 这后缀数组越来越像一个用来求\operatorname的工具人了…… 对于一个\text\(的拆分,我们可以在中间切一刀,变成\)\text\(与\)\text两半。这时,我们只需要设ai表示以i为结尾的\text串数量,bi表示以$ 阅读全文
posted @ 2021-04-01 10:55 Troverld 阅读(85) 评论(0) 推荐(0) 编辑
摘要:XVIII.[HEOI2016/TJOI2016]字符串 作为一个理智正常的OIer,二维数点的题说什么都应该离线线段树通过而不是大力搞主席树呀((( 我们发现这题询问中s[c,,d]中这个“d”是不重要的,只需要把最终结果同(dc+1)\(\)min即可,因此忽略不 阅读全文
posted @ 2021-04-01 10:50 Troverld 阅读(78) 评论(0) 推荐(0) 编辑
摘要:X.[SCOI2012]喵星球上的点名 我居然做出了这题……难以置信! 首先,思路很明显是把所有串全怼一起(包括名字和询问串),加上分隔符,然后跑一遍后缀数组。 我们仍然可以用单调栈求出关于每个询问串与它相同的区间。即,如果以询问串为前缀的那个后缀的rankp的话,它的合法区间$[L,R] 阅读全文
posted @ 2021-04-01 10:31 Troverld 阅读(52) 评论(0) 推荐(0) 编辑
摘要:XXV.Sasha and Algorithm of Silence's Sounds 假设我们把区间[l,r]\(\)[l,r]作为子区间的区间,都是不合法的。 于是我们对于每个位置l,都可以找出其最右边的不成环的位置r阅读全文
posted @ 2021-03-31 16:37 Troverld 阅读(55) 评论(0) 推荐(0) 编辑
摘要:CLIII.[SDOI2017]切树游戏 设 fx,0,i 表示 x 子树中,所有包含 x 且异或和为 i 的连通块数量,fx,1,i 表示 x 子树中异或和为 i 的连通块数量。显然,有公式 \(f_{x,1,i}=f_{x,0, 阅读全文
posted @ 2021-03-31 15:38 Troverld 阅读(65) 评论(0) 推荐(0) 编辑
摘要:CLI.[ARC115E]LEQ and NEQ 设 fi,j 表示位置 ij 的方案数。则 fi,j=(kfi1,k)fi1,k。于是我们便考虑线段树优化,只需要实现四种操作:整体求和, 阅读全文
posted @ 2021-03-31 15:36 Troverld 阅读(146) 评论(0) 推荐(0) 编辑
摘要:CXLV.[九省联考2018]秘密袭击coat 首先先讲一种暴力但能过的方法。 很容易就会往每个值各被计算几次的方向去想。于是我们枚举每个节点,计算有多少种可能下该节点是目标节点。 为了避免相同的值的影响,我们在值相同的点间也决出一种顺序,即,若两个值相同的点在作比较,依照上文定下的那种顺序决定。 阅读全文
posted @ 2021-03-31 15:27 Troverld 阅读(40) 评论(0) 推荐(0) 编辑
摘要:CXLIV.[IOI2018] meetings 会议 被人坑了说这题是CDQ分治的题,一小时想不出来开了题解发现是道DP 大概不会有人像我一样一开始想了极其诡异的DP,然后发现可以用莫队+树剖优化到 O(nnlog2n),但是这复杂度估计比 n2 还差…… 扯远 阅读全文
posted @ 2021-03-31 15:24 Troverld 阅读(61) 评论(0) 推荐(0) 编辑
摘要:CXXX.[GYM102904B]Dispatch Money 考虑设 fi 表示长度为 i 的前缀的最优划分。则我们发现,有 fj+inversion(j+1,i)fi,其中 \(\text{inversion}\ 阅读全文
posted @ 2021-03-31 14:59 Troverld 阅读(208) 评论(0) 推荐(0) 编辑
摘要:LXXVIII.[USACO12OPEN]Bookshelf G 转移很简单,直接设f[i]表示前i个位置书架的最小高度和即可。 考虑转移。 我们有暴力的公式 \(f[i]=\min\limits_{j=1}^{i}\Big\{f_{j-1}+\max\{h_j,\dots,h_i\}\Bi 阅读全文
posted @ 2021-03-30 19:36 Troverld 阅读(69) 评论(0) 推荐(0) 编辑
摘要:LXXVII.[CmdOI2019]任务分配问题 这道题与LXI.CF868F Yet Another Minimization Problem长得很像。实际算法也类似。 首先,题意就是把所有数划分成k段,使得每段内部正序对数量之和最少。设w(i,j)\(\)(i,j)内部正序对数量 阅读全文
posted @ 2021-03-30 19:34 Troverld 阅读(69) 评论(0) 推荐(0) 编辑
摘要:LXXIV.[USACO18DEC]Sort It Out P 集合中的数一定是某一条LIS的补集,这点还是比较好想的。 我们要集合的字典序最小,就是让集合的补集的字典序最大。 最大就可以考虑按位处理LIS中的数。 我们从后往前求LIS。我们设f[i]表示以当前位置开头的LIS的长度以及数量(类 阅读全文
posted @ 2021-03-30 19:29 Troverld 阅读(49) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示