摘要: link 一道足够良心(也就是足够简单)的题目。理论上应该使用lct来硬刚(就当复习了),但由于分块的做法实在是太过于简单了,想想算了吧。 #include<cstdio> #include<cmath> #define zczc #define read(A) scanf("%d",&A) con 阅读全文
posted @ 2022-02-13 19:17 Feyn618 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 修改于2022.02.13。嫌弃这个主页太花哨了,特此更换,但又不甘心苦心多年收集之物遗世,故填充于此作为纪念。 以下为我曾经的主页。 博客园 个人简介 \(\color{#2CA9E1}\mathsf{『蒟蒻终究是蒟蒻』}\\\scriptsize\mathsf{story\_about\_pas 阅读全文
posted @ 2022-02-13 17:12 Feyn618 阅读(47) 评论(0) 推荐(0) 编辑
摘要: link 之前一直觉得lct是个特别高大上的东西,事实也是这样的,毕竟我也是写了差不多两天才把它写出来,当然算上肝Splay的时间。 lct本质上是一种奇怪的树链剖分,名叫实链剖分,这也是我继重链剖分和长链剖分之后学习的第三种树链剖分。树链剖分的目的都是想要把树上问题转化成链上问题从而降低题目难度, 阅读全文
posted @ 2022-02-13 11:49 Feyn618 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 我就喜欢这种有整整齐齐成员函数的数据结构【doge】 LCT&Splay: 阅读全文
posted @ 2022-02-13 11:26 Feyn618 阅读(27) 评论(0) 推荐(0) 编辑
摘要: link Splay维护序列的一个较为高级的实例,其它没什么,调得挺顺利的也没什么好说的,除了脑残一下wa#3以外其它都还好。需要告诫后人的是一定要注意摒弃那两个哨兵点,不然会死得很惨。 #include<cstdio> //#define zczc const int N=500010; inli 阅读全文
posted @ 2022-02-12 15:47 Feyn618 阅读(31) 评论(0) 推荐(0) 编辑
摘要: link 平衡树(特别是Splay)维护序列的模板题。之前实在是我傻了调了那么久…… 首先明确几个概念,正是这几个概念的模糊导致了我对算法理解的不清晰和极其蹩脚的调试过程。 会考虑维护一棵平衡树,它的中序遍历就是原序列。区间操作是基于对子树的整体操作的,假如有一个针对$[l,r]$的修改或查询,考虑 阅读全文
posted @ 2022-02-12 13:57 Feyn618 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 我很开心,我终于大概搞明白Splay的写法了。归根到底还是因为我太弱了。 Splay和Treap差不多,都是通过一系列奇怪旋转保证树的平衡。但Splay的逻辑简单一点,把每次访问的节点旋转到树根,相当于是给树来了一次重组。写法上很奇怪,和我习惯有很大的出入,比如把zig和zag并到一起,以及用whi 阅读全文
posted @ 2022-02-12 10:44 Feyn618 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 啊,此随笔并没有什么实际内容啊,就是凑个数【doge】 阅读全文
posted @ 2022-02-10 18:37 Feyn618 阅读(19) 评论(0) 推荐(0) 编辑
摘要: link 原题就叫这名字,虽然我并没有看出来它二逼在哪里。 就是一个线段树套平衡树的模板,挺好理解也挺好写,除了手抖收获了一片RE之外一切都挺顺利的,开了$O_2$随便过【逃】。 #include<cstdio> #include<cstdlib> #include<ctime> //#define 阅读全文
posted @ 2022-02-10 18:35 Feyn618 阅读(73) 评论(0) 推荐(1) 编辑
摘要: link 这个题目让我想起了李玉辉。 当异域的风唤醒南国的雨 那天宝的尘埃 醉了尘封多年的往事 你生拽着轮回几世的姊妹 千里迢迢亮了皇城 华清池畔的你 多了几分神的气质 1502年的盛夏 一个叫做哥伦布的浑身嵌着蓝宝石的家伙 虔诚地将你敬献 国王瞬间化作斗牛士 他双手托起王冠 想亲手为你加冕 从此, 阅读全文
posted @ 2022-02-10 16:57 Feyn618 阅读(37) 评论(0) 推荐(0) 编辑
摘要: link 约等于平衡树模板题。不知道为什么平衡树似乎总是和我有仇,怎么写怎么错。仅以此篇博客纪念我与平衡树之间的斗争的阶段性胜利。 这道题相当于是要求支持三个操作,插入,查找排名为k的数,删除小于某个值的所有元素。这些都是平衡树的基本操作,第三个只需插入一个那样的节点,把它旋转到根部,如何删除左子树 阅读全文
posted @ 2022-02-10 16:47 Feyn618 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 无聊的知识。 不等式$ax+by\le c$实际上是一个闭半平面。要验证一个矩形是否在这个闭半平面内只需要验证它的四个角的坐标是否满足以上等式就可以了。 很简单也很无聊的知识…… 阅读全文
posted @ 2022-02-10 15:31 Feyn618 阅读(140) 评论(0) 推荐(0) 编辑
摘要: link 算是左偏树的模板题。真正的模板题懒得放了。首先总结一下什么是左偏树。 左偏树就是可并堆。假如想要把两个普通堆进行合并,最简单的方法就是把较小堆的元素一个一个假如较大堆中,应该是$O(NlogN)$左右吧。但我们发现这样的做法非常费时间,何不考虑直接把一个堆直接挂到另一个堆的下面呢。然后发现 阅读全文
posted @ 2022-02-09 14:54 Feyn618 阅读(27) 评论(0) 推荐(0) 编辑
摘要: link 也算是一道模板题了。 上一道题并没有提到的是,后缀数组还有一个很重要的应用,即$height$数组,以下简称h。$h_i$的定义是排名为i的后缀与排名为i-1的后缀的最长公共前缀长度,而h数组我们可以$O(N)$求得。方法如下。 首先有一个结论,\(h[rank[i-1]]-1\le h[ 阅读全文
posted @ 2022-02-08 22:15 Feyn618 阅读(111) 评论(0) 推荐(0) 编辑
摘要: link 挖个坑。SAM这种坑B玩意我寒假之前一定要搞懂。但现在而今眼目下,我的功力还不够,搞后缀自动机很有点困难,毕竟我连AC自动机都不会…… 但后缀数组相对而言简单一些。学的时候并不知道有什么用,但后来发现太有趣了。首先入门题,后缀排序。 这里使用了两个东西,一个是基数排序,一个是倍增思想。基数 阅读全文
posted @ 2022-02-08 21:38 Feyn618 阅读(55) 评论(0) 推荐(0) 编辑