我曾经会写平衡树
__Alex866__ · · 生活·游记
哇 T1 好难,我一分都不会。
对于这种简单题,我们显然是可以用平衡树的,对于
所以我觉得 T1 不应该是平衡树,但是我觉得就是平衡树。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
因此我开始思考性质
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
因此我开始思考性质
不过我并不知道可持久化平衡树应该怎么写,所以我觉得这道题非常困难。
于是我开始尝试手搓可持久化 Splay。但是一想到数据范围是
所以我决定开始想更快的可持久化做法是什么,但是我不知道可持久化应该怎么写,也不知道 LCT 应该怎么做。
我已经破防了,我没有任何希望了。这是我第一次在 NOIP 中被 T1 创飞 30min 而没有开始写代码。
于是我决定先开始写代码,我开始寻找平衡树的写法。
但是一想到数据范围是
不过我现在才知道我应该写的是可持久化平衡树,我没记错的话可持久化的复杂度和树高有关系。所以我并不是很会这道题目。
因此我开始思考假算应该怎么写。
我开始考虑 B 性质。
我发现这是一道很简单的形式,因为我们要把他们分成两组然后求权值和的最大值。这很显然可以使用平衡树来做。不对应该是可持久化。
不过我并不知道可持久化应该怎么写,所以我觉得这道题非常困难。
于是我开始尝试手搓可持久化。但是一想到数据范围是
所以我决定开始想更快的可持久化做法是什么,但是我不知道可持久化应该怎么写,也不知道 LCT 应该怎么做。
因此我觉得我不应该思考可持久化和 Tree 相关的做法。
我认为贪心是很没有前途的东西,于是我决定从 dp 开始找性质。
我发现这个
于是我考虑转化为树上启发式合并模型,但是我决定在推到模型之前检验一下自己会不会平衡树。
对于
所以我觉得 T1 不应该是平衡树,但是我觉得就是平衡树。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
因此我开始思考性质
我发现我已经有
于是我考虑贪心。但是作为一个提高组选手,我并不会贪心,甚至在考前复习了很多次的 积木大赛 也都快忘记怎么写了。
于是我考虑线段树优化 dp。我发现可以用平衡树来做,于是我发现我正在思考平衡树。所以我应该上厕所冷静一下。
于是打算写一个贪心,无论怎样都要强迫自己写出一个贪心算法出来。
于是我终于写出来了一个贪心算法,这是一个反悔贪心,但是只能通过
我不打算继续思考了,于是我决定用我仅存的理智把我的贪心算法写完善。
于是我拍子过了,但是我仍然发现我的这个东西是可以被 Hack 的。不过我不可能在 T1 做超过
对于 T2 找到一个联通的方式我可以想到模拟退火,想到模拟退火我就可以用随机化来做。
所以我觉得 T2 不应该是平衡树,但是我觉得就是平衡树。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
因此我开始思考性质。因此很不难想到平衡树,但是我并不会平衡树。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
我意识到这道题不能用平衡树来做,因此我得考虑别的算法。
我想到了最小生成树,于是我卡常过了。
我怀着激动的心情打开 T3,我感到非常悲伤,因为我发现这道题几乎不能使用平衡树来做。
难道平衡树就不能做了吗?我认为,在思考这个问题之前,我应该思考我会不会写平衡树。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
因此我开始思考性质,显然是很简单的,我们可以使用可持久化平衡树来解决。
不过我并不知道可持久化应该怎么写,所以我觉得这道题非常困难。
于是我开始尝试手搓可持久化。但是一想到数据范围是
所以我决定开始想更快的可持久化做法是什么,但是我不知道可持久化应该怎么写,也不知道 LCT 应该怎么做。
我已经破防了,我没有任何希望了。现在比赛已经进行到
于是我决定先开始写代码,我开始寻找平衡树的写法。
但是一想到数据范围是
不过我现在才知道我应该写的是可持久化平衡树,我没记错的话可持久化的复杂度和树高有关系。所以我并不是很会这道题目。
因此我开始思考假算应该怎么写。
但是此时我想到我的 T1 可能也需要可持久化才能得到正确的做法,于是我决定思考可持久化怎么做,毕竟可持久化可以代替平衡树,虽然可能会 TLE,但是这是我的希望。
不过我并不知道可持久化应该怎么写,所以我觉得这道题非常困难。
于是我开始尝试手搓可持久化。但是一想到数据范围是
所以我决定开始想更快的可持久化做法是什么,但是我不知道可持久化应该怎么写,也不知道 LCT 应该怎么做。
因此我觉得我不应该思考可持久化和 Tree 相关的做法。
我认为平衡树是很没有前途的东西,于是我决定从字典树开始找性质。
我发现这个模型非常适合用 Splay 来做。不对!我不应该思考可持久化应该怎么做!我不会可持久化!
于是我考虑转化为树剖模型,但是我决定在推到模型之前检验一下自己会不会平衡树。
对于
所以我觉得 T3 不应该是平衡树,但是我觉得就是平衡树。
于是我开始尝试手搓 Splay。但是一想到数据范围是
所以我决定开始想更快的平衡树做法是什么,但是我不知道 Splay 应该怎么写,也不知道 LCT 应该怎么做。
因此我开始思考哈希应该怎么做。
我发现我可以枚举每一种的方案然后判断即可统计答案,随后我突然意识到枚举每一个方案的时间复杂度是多项式复杂度的!我真是个天才,我居然会了 poly 时间复杂度做法!
但是我想到平衡树也是 poly 时间复杂度的,因此我开始思考平衡树应该怎么做。
我还是不会平衡树。
我真的不会平衡树吗?
我真的不会平衡树。
我学了两年还不会一个平衡树吗?
我真的不会平衡树。
此时,我才意识到,我在这一年内几乎就没有任何的进步,在模拟赛中不会的题永远不会,而这些不会的题目,正是阻断着我进步的东西。
我开始思考我在这整整一年中我到底进步了什么,我到底学会了什么?是平衡树吗?不,我没有学会,因为我思考了很久的平衡树我并不会。
那我为什么学了整整一年还是不会平衡树呢?我是否真正的在这一年中没有学会任何东西?每天随随便便地找一些题目来做,我就会平衡树了吗?我就真正的在我的 OI 之路上取得进步了吗?
我曾经特别喜欢在闲暇时间打 duel,直到以后要我才明白,这用 duel 的方式来提升自己的实力,简直就和我学习平衡树一样低效率!
我真正收获了什么吗?我取得了更好的进步吗?我每天都沉浸在自己喜欢做的数位 DP 题目中,每天做数位 DP 题目做到发癫,但是考试真的会考吗?即使会考又如何呢?
我根本就没有一种好的学习方法来学习 OI!我整整荒废了整整一年的时间!我什么都没有得到!
想到这里,我的眼眶慢慢地被晶莹的眼泪覆盖。我不禁开始后悔,可是世界上哪里有什么后悔药啊。
我想 Splay 的思想也是类似的,因为 Splay 就是通过 rotate 来起到“反悔”的一个作用。可是这世上哪里有什么 rotate。
:::info[创作说明] 本文使用 Gemini 创作,经过了少许人工微调。 :::