随笔分类 -  数据结构——基础数据结构(栈/队列/链表)

摘要:I.V.UOJ#284. 快乐游戏鸡 我们来思考一下你游戏的过程:每次找到一个最浅的 wi 大于当前死亡次数的位置 i,走到那儿;不断这样,直到下面两件事中有一件先发生: 你当前的死亡次数允许你一路走到终点。 你的死亡次数已经不小于 wi,需要寻找新的 i。 然后 阅读全文
posted @ 2021-04-09 14:35 Troverld 阅读(247) 评论(0) 推荐(0) 编辑
摘要:XLVI.CF1408G Clusterization Counting 很明显,将边按照权值从小到大排序后,依次用冰茶姬合并,如果任意时刻出现了团,则这个团显然是唯一合法的可能。人脑思考可得这个团之间的关系肯定是个划分树关系(即一个大团裂成许多小团的树形关系),因此总合法团数是 O(n) 阅读全文
posted @ 2021-04-03 13:18 Troverld 阅读(50) 评论(0) 推荐(0) 编辑
摘要:XLI.[NOI2017] 蚯蚓排队 算算数据范围,可以哈希,只需要将所有长度在 50 以内的串扔进哈希表,然后询问时找到对应的串的出现次数即可。 这里的哈希表必须用双哈希,其中第一维开在数组范围内,然后第二维作为链表挂在后面,因此范围可以无限大。不过因为要在 int 内处理,因此我两个模数 阅读全文
posted @ 2021-04-02 23:09 Troverld 阅读(97) 评论(0) 推荐(0) 编辑
摘要:XXXV.CF36E Two Paths 为什么这题会被归到数据结构博客里呢?因为我的代码使用了大剂量的 STL。 我吹爆 list 有没有!再也不手写链表了(并不),但是在欧拉路问题上真的贼好用! 首先,覆盖所有边恰一次,妥妥的欧拉路模型。 然后就先考虑如何判无解了。怎样无解呢? 有少于 \(2\ 阅读全文
posted @ 2021-04-02 22:57 Troverld 阅读(50) 评论(0) 推荐(0) 编辑
摘要:XXVI.CF1458C Latin Square 实际上此题使用的数据结构不很高级,甚至可以说很不高级——因为全程只用了数组。但是本题的思想绝对是非常高级的。 我们考虑上数据结构维护该操作。上下左右移动显然是没问题的;但是行中列中轮换应该咋办呢? 我们先考虑如果只有行上轮换应该怎么办。这玩意没什么 阅读全文
posted @ 2021-04-02 16:54 Troverld 阅读(53) 评论(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) 编辑
摘要: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) 编辑

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