随笔分类 -  思想——单调性(单调队列/单调栈)

摘要:I.V.UOJ#284. 快乐游戏鸡 我们来思考一下你游戏的过程:每次找到一个最浅的 wi 大于当前死亡次数的位置 i,走到那儿;不断这样,直到下面两件事中有一件先发生: 你当前的死亡次数允许你一路走到终点。 你的死亡次数已经不小于 wi,需要寻找新的 i。 然后 阅读全文
posted @ 2021-04-09 14:35 Troverld 阅读(247) 评论(0) 推荐(0) 编辑
摘要:XXIII.[JOI 2020 Final] 火事 题解 阅读全文
posted @ 2021-04-02 16:48 Troverld 阅读(83) 评论(0) 推荐(0) 编辑
摘要:XXII.CF477E Dreamoon and Notepad 题解 阅读全文
posted @ 2021-04-02 16:45 Troverld 阅读(47) 评论(0) 推荐(0) 编辑
摘要:IX.[BJOI2017]树的难题 debug三天,精神崩溃 论一行if(vis[v[x][r].second]){r++;continue;}忘记加上后所有代码全都莫名其妙TLE且查不出锅的痛苦 首先,我们考虑常规淀粉质。 我们考虑一条路径,它会被(淀粉质的分治根)截成两段。如果我们对于分治树中的 阅读全文
posted @ 2021-04-01 12:56 Troverld 阅读(80) 评论(0) 推荐(0) 编辑
摘要:XXXVI.LOJ#6198. 谢特 SA+笛卡尔树+01trie+启发式合并模板四合一,省选模板练习必备神器 考虑SA后建立笛卡尔树。问题转换为在笛卡尔树的一段区间中(此时该区间内任意两条后缀的LCP长度均为区间中 ht 最小值)任意两条后缀的 xor 最大值。是经典 阅读全文
posted @ 2021-04-01 11:25 Troverld 阅读(65) 评论(0) 推荐(0) 编辑
摘要:XXXII.CF1063F String Journey 题解 阅读全文
posted @ 2021-04-01 11:20 Troverld 阅读(22) 评论(0) 推荐(0) 编辑
摘要:XXX.[CTSC2012]熟悉的文章 题解 阅读全文
posted @ 2021-04-01 11:16 Troverld 阅读(37) 评论(0) 推荐(0) 编辑
摘要:XXVIII.[BZOJ3277]串/CF204E Little Elephant and Strings 这两题是重题,代码改都不改交上去就能A,故放在一起讲。 网上的大多数SA题解都是O(nlog2n)O(nlogn)的复杂度,太令人不爽了。因此,这里有一种复杂度O(n)阅读全文
posted @ 2021-04-01 11:10 Troverld 阅读(74) 评论(0) 推荐(0) 编辑
摘要:XX.【模板】后缀自动机 (SAM) 俗话说的好,模板题怎么能用模板水过去呢 我们考虑用建出ht数组,然后用单调栈求出每个ht最多能向左向右延伸多远(VI.[AHOI2013]差异),然后直接一边扫过求max即可。 复杂度O(n),假如你用DC3的话。但是用倍增实际跑起来也真的超快 阅读全文
posted @ 2021-04-01 10:53 Troverld 阅读(62) 评论(0) 推荐(0) 编辑
摘要:XV.Annihilate 我当年为什么会手贱开这卡常大毒瘤题呀 思路1. 用vector存下每个字符串在后缀排序后的下标,然后每次枚举两个串,用一个vector里面的数在另一个里面two-pointers找到它两侧的数,然后用ST表求LCP。 时间复杂度$O\Big(\sum|S|(\log\su 阅读全文
posted @ 2021-04-01 10:42 Troverld 阅读(128) 评论(0) 推荐(0) 编辑
摘要:XII.[TJOI2015]弦论 题解 阅读全文
posted @ 2021-04-01 10:36 Troverld 阅读(39) 评论(0) 推荐(0) 编辑
摘要:XI.[APIO2014]回文串 题解 阅读全文
posted @ 2021-04-01 10:33 Troverld 阅读(40) 评论(0) 推荐(0) 编辑
摘要:X.[SCOI2012]喵星球上的点名 我居然做出了这题……难以置信! 首先,思路很明显是把所有串全怼一起(包括名字和询问串),加上分隔符,然后跑一遍后缀数组。 我们仍然可以用单调栈求出关于每个询问串与它相同的区间。即,如果以询问串为前缀的那个后缀的rankp的话,它的合法区间$[L,R] 阅读全文
posted @ 2021-04-01 10:31 Troverld 阅读(52) 评论(0) 推荐(0) 编辑
摘要:VIII.[SDOI2008]Sandy的卡片 ……有什么意义吗…… 差个分,然后就是IV.[POI2000]公共串的内容了,套个单调队列,O(n)解决,假如你用DC3的话。 代码: #include<bits/stdc++.h> using namespace std; int all,n,m 阅读全文
posted @ 2021-03-31 16:58 Troverld 阅读(48) 评论(0) 推荐(0) 编辑
摘要:VII.[HAOI2016]找相同字符 第一道自己做出的SA题祭~~~ 实际上和上一题没啥区别的说…… 我们发现,这题实际上就是对于两个串中所有的后缀求\operatorname\(之和(因为这两个后缀共有\)\operatorname个前缀是相同的,即串中有这么多子串是相同的)。 老套路,俩串 阅读全文
posted @ 2021-03-31 16:57 Troverld 阅读(62) 评论(0) 推荐(0) 编辑
摘要:VI.[AHOI2013]差异 1i<jnlen(Ti)+len(Tj)2×LCP(Ti,Tj) 这个柿子可以拆成两部分,即 \(\sum\limits_{1\leq i<j\leq 阅读全文
posted @ 2021-03-31 16:55 Troverld 阅读(46) 评论(0) 推荐(0) 编辑
摘要:V.UVA11107 Life Forms 这题同上题类似,只不过把“在全部串中出现”变成了“在超过一半(即\left\lfloor\dfrac{2}\right\rfloor+1)个串中出现”。 这题中我的方法是上题中提到的“two-pointers+单调队列”算法。第一遍跑求出所有满足“出现 阅读全文
posted @ 2021-03-31 16:54 Troverld 阅读(53) 评论(0) 推荐(0) 编辑
摘要:III.[USACO06DEC]Milk Patterns G 同上一题思路类似,我们仍然建出后缀数组。 考虑任何出现k次的子串,以它们作为前缀的后缀在sa数组中一定是连续的——这一点可以从上文中的\text直接看出,因为相邻的结果一定大于等于不相邻的结果。 因此我们只需要求出ht阅读全文
posted @ 2021-03-31 16:49 Troverld 阅读(53) 评论(0) 推荐(0) 编辑
摘要:CXLVII.[NOI2016] 国王饮水记 首先,我们一定可以舍去那些高度比 h1 还小的城市,并且将剩余的高度比 h1 大的城市排序,使得 h1hn 递增。 我们不妨从三座城市想起。假如可以合并两次,应该怎么合并? 先合并 (1,2),再合并 阅读全文
posted @ 2021-03-31 15:29 Troverld 阅读(97) 评论(0) 推荐(1) 编辑
摘要:CXXXVI.[IOI2000] 邮局 加强版 Observation 1. 若一段村庄中设一个邮局,则邮局一定设在其中位数(若是偶数则任一中位数)的位置。 Observation 2. 若令 w(l,r) 为区间 (l,r) 中村庄设一个邮局的费用,则其满足四边形不等式。 Obse 阅读全文
posted @ 2021-03-31 15:11 Troverld 阅读(163) 评论(0) 推荐(0) 编辑

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