3月杂题
省选后再学多项式相关技巧了!现在得复习一些更重要的算法。
0.我复习了/补了哪些算法
动态更新。
数学:多项式取模,常系数齐次线性递推,Min25筛,BSGS,ExLucas,斯特林反演,线性规划对偶。
ds:区间历史最值,吉老师线段树,线段树分裂,树哈希,LCT,kd-tree,最小割树。
字符串:PAM,广义SAM(在线)。
其他:决策单调性优化,slope-trick。
1.CF1768F Wonderful Jump
一眼决策单调性,但是二眼发现看错了。
考虑值域为 有什么用:如果从 跳到 ,显然 ,后者是一格一格跳的代价上界。
于是 时我们才会从 跳到 。
看到平方,考虑 。所以如果 到 中存在 满足 ,则先跳 ,再跳 一定更优。
这个题就很简单了: 就暴力枚举; 时有两种情况:
第一种是 为 的 min ,要求 ,直接暴力往前扫,扫到第一个 就停止。这个是均摊 的。
第二种是 为 的 min ,在算 时枚举所有 ,以 最后一次出现的位置转移。
总复杂度 , 时取到 。
2.P4227 [清华集训2017] 我的生命已如风中残烛
考虑直接模拟,然后如果出现环就把 对环长取模。因为每次 至少减半,所以复杂度是 ,其中 是单次找 nxt 的复杂度。
事实上,这里可以均摊 ,考虑我们的环一定形成了凸包,而每个点在两个边组成的夹角内部才会被枚举到。
所以对于每个环,每个点只会被扫一次。我们预处理每个点与其他点的极角,每次找 nxt 时二分出第一个点,再枚举出往后第一个长度满足条件的。
复杂度就是 。
3.Baekjoon 19361 City United
很神秘啊,怎么想到的。
考虑枚举一个点集 ,我们可以把它的权值表示成 ,其中 是点集 的连通块个数。
考虑 的组合意义:把每个点染成 三种颜色,并且 和 间不能有边。
直接 dp 即可,复杂度 。
感觉就是,判是否连通是不方便的。但是连通块有优秀的性质,利用此题的模数来进行计算。
4.「CSAcademy Round #35」Counting Quests(pjudge noip round 5 T3)
神神神。类似一些连通块计数问题,我们来考察任意一个区间集合的性质:
令 是覆盖 的集合,则不存在 使 。那么这就是一个类似于括号序列的结构:要么包含,要么不交。
所以我们进行这样一个过程:初始 ,对于 ,找到 的最大的 ,然后 。
这样就把 个位置划分出来了。现在转换角度,如果已经划分出来了,则你选择的区间 要满足:要么存在一个 使 ;要么 等于某个 ,要么 等于某个 。并且最后要使得 互不相等。
可以得到此时的方案为 ,其中 就是 时的答案。
令 是把 个数划成 段的所有方案系数和。则 ,移一下项就能把 算出来了。
算 是 的。复杂度 。
事实上, ,则 。那么
如果 , ,则 。
,使用拓展拉反: 。
由此可以 计算。由于这个题模数不是 NTT 模数,所以使用 求 exp 和 ln 的方法跑得更快,pjudge 上 alpha 的 std 应该也是这个。
5.P7216 [JOISC2020] 美味しい美味しいハンバーグ
矩形问题,考虑取出 最大, 最小, 最大, 最小的四个矩形,则四个点一定在靠内的四条线段上。
如果 ,那其中一个点一定是这四段围成的矩形的一个角。我们直接 dfs 下去,复杂度 。
否则:我们考虑一个矩形。
若和三个以上的边相邻,则它一定包含了关键点;若和一个边相邻,则它限制了这个边的上下界。现在考虑和两个边相邻的矩形:
把题目的限制转化成:两个矩形,在某个边界上不交,则不能同时取。如果满足这个限制,就一定有合法方案。
每个这样的矩形选择两个边中的一个,看做一个变量,这样就能 2-SAT 了。建图类似于前/后缀和优化。
6.[春季测试 2023] 密码锁
题外话:vp 的时候 写了个 的做法结果写挂了。改对了之后有 。
首先有一个重要的观察是,最大数和最小数一定不能在一行。
于是 简单。
对于 ,二分答案之后,能确定每个拨圈在第三行可能的取值集合。考虑哪些 含有所有拨圈,通过差分可以 维护,总复杂度 。
类似的, 就是一个扫描线,复杂度 。场上蠢了,一直在想 的做法,即能不能绕开二分答案。
7.「JOISC 2020 Day1」扫除
首先考虑:所有修改进行后再询问,怎么弄。
我们把所有 ,则两个修改变成:每次给定一个 ,对于 的线段 ,把它变成 或 。称改成 为操作 ,改成 为操作 。
如果只有操作 ,发现这些操作是 无序 的,对于初始的 ,查询 的 的最大值即可。
现在我们有两种操作,不同的操作之间会互相制约。考察一个先发生的变成操作 (权值为 ),如何影响后发生的操作 (权值为 )。
你发现,如果 ,那么 操作能影响的线段 一定满足 。
由此可求出一个操作的影响范围。就把两种操作拆开了。但现在,我们同种之间的操作似乎变得有序了,不好搞。
以操作 为例:
我们令 表示一个操作 影响范围是 。
按 从小到大的顺序进行操作,它就是正确的。
原因:如果有两个操作 满足 ,那我们担忧,是否有 ,因为顺序交换使之最后能变成 。
分类讨论:如果 ,那由 的定义, ,所以 不会被 和 操作。
如果 ,那即使 先被 操作变成 ,它也无法被 操作。
由此,我们用线段树维护 表示 经过当前的所有操作后会变成什么。那插入一个 等同于将所有 的 改成 。
我们在插入所有 的操作后询问 即可。操作 就类似的做就好了。
现在中途有查询和插入,套一个线段树分治就转化成上述做法了。复杂度 。
8.P5781 [IOI2019]矩形区域
看 cz_xuyixuan 写的。
考虑枚举两列 ,把哪些行合法处理出来,设这个行的集合是 ,显然 是 级别。
然后枚举 中的一行,以及它在 这里是左端点还是右端点。我们预处理出来它往左能延伸到哪里即可。于是总复杂度 。
9.P7418 [USACO21FEB] Counting Graphs P
题外话:自己做出来的,但显然模拟赛场上写不完(而且我 T1 写挂了)。感觉挺简单的。
先把二分图判掉。然后我们算出以 为源点的奇偶最短路,设点 的偶最短路,奇最短路分别为 。
则新的图只能在满足 的 间连边。
可以转化成:把一个点拆成 ,相当于在 和 连边,然后所有权值 的点都要被连至少一次。
就可以 dp 了,同时考虑 相同的点,把这个新图画出来,做法就很清楚了,不想写了。
10.P9138 [THUPC 2023 初赛] 公平合作
题外话:打 THUPC 中途摆了一个小时烂,导致这个 F 没冲完。队友也没调出来 B ,所以没进决赛。
如果算出 表示,先手把桶最终把桶填到只剩 单位的空间,先手赢的概率, 表示先手当前桶还剩 单位空间,先手赢的概率。
那就有 。
显然 时我们只会取后者,所以暴力把 的 求出来,再线性递推即可,即计算 。
至于 是类似的, 。
注意我们单次卷积,取模可以 实现。通过快速幂 算完 ,直接每次 乘上一个 并取模,就能算出来 。
11.LOJ 574 黄金矿工
重修模拟费用流!
费用流的模型是显然的: 连边 ,然后对于矿工,连边 ,对于黄金,连边 ,然后跑最大费用最大流。
现在我们要动态加边,但对答案有贡献的不一定是增广路,还有在残量网络出现的正环。因为我不会费用流,没考虑这个正圈,就没有拿下 的分。
你发现这两者的维护方式是类似的:
考虑一个 的边,它反向边的流量就是 子树内选择的黄金数量-矿工数量。
于是对于一个想加入的矿工 ,我们找到它往上走第一个流量为 的反向边,设这个是 ,发现如果选的另一个点不在 子树内, 就是负的了。
于是在 子树内找到一个价值最大的未被选的黄金。这里我们把已选的矿工当成是未被选的黄金,权值为原来的相反数,就能实现消圈了。(后面的操作也能把已选黄金当未选矿工)
上面这个过程可以树剖实现,即维护一个线段树来计算反向边的流量,我们需要查区间内最右的 。还要维护一个线段树,需要查区间内的最强黄金并进行单点修改。
对于一个想加入的黄金 ,同理地,如果另一个点如果能沿着反向边走到 的祖先,那这个点就能被选。
这里类似于 DDP 来维护:我们在每个点 维护一个 set ,表示这个点上的矿工,以及每个轻儿子的子树内能走到 的最强矿工所构成的集合。
每次反向边流量改变,以及有矿工加入/删除时都会改变 。
我们想知道 子树内能走到 的最强矿工。找到 内的最左的 ,设之为 ,然后查 的所有 构成的最强矿工即可。
此时改变了 ,递归地往上跳即可。
查询时同理,每次找到 内最左的 ,设之为 ,然后查 内的所有 构成的最强矿工。再往上跳 。
对 的最大值再维护一个线段树即可。
想清楚就不难写,复杂度 。
12.Xmas Contest 2020 D Determinant
这个矩形中有大量相同的数,于是对之做行查分,得到新的 。
发现对于 。 于是求行列式时,如果排列中一个置换环大小 >1 ,那这个环一定包含 ,且环的连边顺序是从小往大连,连到 后再连回去。
先把全是自环算了,然后令这个大环内的数是 ,其中 ,且对于 , 。则这个选法的贡献是 。
我们再来思考 有什么性质。根据定义不难得到,当 时, ,否则 。
我们是可以把 的前后两个式子拆开算的。再算上 的系数,可以把问题转化成:
在 间有权值为 的边, 间有权值为 的边, 间有权值为 的边。从 的一个点出发,最后要走到 ,问所有方案的权值乘积之和。
但是从 到 ,可以直接走,权值为 ;也可以先走到 ,再走到 ,权值为 。于是这两种就抵消了,非常神秘。
于是我们就只会先走一段 ,再走一段 。
令 , , 。
则上述问题答案为 。如果能筛出来 的前缀和就好了。
虽然 不是积性函数,但由于 ,且 的前缀和易求,我们仍然可以用杜教筛解决问题。复杂度 。
13.ARC145F Modulo Sum of Increasing Sequences
显然可以转化为单调递增序列。然后以生成函数列出答案: ,其中第二维是以 为模数的循环卷积。
这个积式的最后 项拎出来,使前面都是整块,形成一个 的形势,最后再 背包。
不难想到对第二维进行 DFT,我们想计算一个多项式 ,我们只需保留后 项,最后再 IDFT 回去,有 。
但是 不一定是 的形式,没法直接代进去算,我们需要进一步简化。
发现 只与 相关。 。于是就完成了 的化简。
我们令 。现在考虑 。
看到 gcd ,施加莫比乌斯反演,则 。
逆用单位根反演,得到 。
由此终于把单位根干没了,我们直接计算即可。复杂度是 。
14.ABC278Ex make 1
设 是 个互不相同的数能异或出 的方案,则答案为 。
互不相同不太方便,考虑斯特林反演:
设 是任意 个数异或出 的方案,则 。
由斯特林反演, 。(复习第一类斯特林·行:计算 。)
转化成计算 ,这就是 CF1603F,不详写了。(我只会那个联系 和 的推法。考完省选再学 q-analog)
15.P6631 [ZJOI2020] 序列
考虑写成线性规划的形式。我们令一个集合 是一次操作可以 -1 的数的集合。
我们要求 , , , 。
转成对偶就是 , , 。
显然可以把 替换成 ,并且可以发现 。如果 ,我们把它 +1 一定仍然合法;如果 ,那就 G 了。
由此 dp 即可。复杂度是线性的。
16.LOJ3637「2021 集训队互测」数列重排
题外话:今天场了两个互测,开心。
考虑算 时,我们先思考只有 的数怎么做。一个 mex 值 的区间长度至少为 。
由于出现次数之差 <=1 ,我们可以构造出来一个序列,使每个长度为 的子段的 mex 。就比如说 出现次数分别为 ,我们就 这样放。
现在有一些 的数,于是问题转化成:一个 01 序列有 个 , 个 ,要使得 个数 的子段尽量多。
我们令 表示第 个 后放了几个 ,则 ,我们要使得 最大。
观察到,一对 一定有 。则我们 的位置,就是 满足 ,以及 。
此时在一个位置 +1 ,发现它对答案的贡献是,当前的 减去 再减去 。
那 对答案的贡献是固定的;我们考虑 这个东西。
此时为了让答案最大,一定是先依次加 和 ,让这两个位置都变成 ;然后这两个位置的特殊性就消失了,我们轮流对每个合法的 +1 即可。复杂度 。
17.LOJ3643 「2021 集训队互测」球球
纯暴力就过了,离谱,还是第二优解&最短解。感觉这就是个讨论题阿,不是很难阿.jpg
还是借鉴了很多 zjk 博客。
我们思考,一开始在本体在 分身在 ,经过 秒有一个要到 ,可以怎么走。
第一大类:不开新的分身,有两种情况:
-
,转移到 。
-
,转移到 。
第二大类:开新的分身,此时 没用了。有两种情况:
- 在 放下分身, ,转移到 。
2.在某地方 丢分身,再走到 ,,即: ,转移到
然后来思考一下转移,我们要维护两个集合 表示,可以是本体在 ,分身是 中的一个数;可以是分身在 ,本体在 中的一个数。然后要更新这两个集合。
先考虑一二类转移:
如果 中含有 ,则 加入 ;如果 ,那 加入 的所有集合。
如果 ,那 中加入所有与某个 中数之差 的数。如果存在一个 中数与 之差 ,则 中加入 。
现在考虑三四类,与分身位置无关,我们令 ,如果 非空就加入 。
考虑第三类,贪心地想让 最小, 中找出这个数,把对应区间加进 。
考虑第四类,首先有 。 时, 更小区间更大; 时, 更大区间更大。
找出 最大者, 最小者,然后在 中加入相应区间。
我们把 以 的形式来维护。发现每次区间增加量是 的,我们可以做到 ,而这个是完全跑不满的,就 AC 了。
正解是,我们的操作相当于要维护一个集合,支持:加入一个区间的所有数,查 lower_bound,把集合变成所有 的 的并集。
我们用一个 set 来维护这个集合构成的若干区间。特别地,为了方便进行操作 3 ,我们不用要求这些区间两两不交,只用让 都是单调递增的即可,发现这样也是方便查 lower_bound 的。复杂度 。
如果要求两两不交,我们还需维护一个堆表示两个相邻区间的距离,这样才能搞操作 3 。感觉就挺麻烦,不过我应该见过一个类似的题。
18.CF1534G A New Beginning
复习 slope-trick。
这个题首先能观察到,确定了路径后我们每个点会去找路径上 相同的。不难想到搞一个 的操作,则走法相当于往右/往右上走一步。
按照横坐标从左往右 dp,我们需要进行两个操作:一个是把 变成 ,一个是 。
发现这个东西是个下凸壳,我们用 ds 来维护斜率的拐点。把最低点左右的拐点分开维护,则操作 相当于把右半部分拐点 +=x,打个 tag 维护;操作 2 需要看 和最低点的大小关系,分类讨论即可。
发现可以用堆维护,这个题就做完了。
19.P3642 [APIO2016] 烟火表演
复习 slope-trick。从下往上 dp ,相当于对拐点进行合并,可用左偏树维护。
还有对一段斜率为 -1,一段斜率为 1 的凸包求闵和,就是一直弹堆顶,弹到最后一个点代表斜率是 ,平移最后两个拐点即可。
20.LOJ3693 「JOISC 2022 Day3」蚂蚁与方糖
求这个最大匹配,考虑拓展霍尔定理,求 的最小值。
考察我们会怎么取 ,如果存在两个数 满足 ,那 的所有数我们都会取。
其次,考虑计算 ,从左往右考虑的 的数,会加入一个区间的数,再减掉和上一个区间的交。
用线段树来实现取 S 的过程, 表示左右端点是否取了,即可往上算。
21.P8861 线段
口胡。
考虑一个 的部分分,显然能把 拆开,然后变成 全局取 min ,插入,查 的问题,可以 BIT+堆 维护。
拓展开来,考虑类似于猫树,把一个线段插到分治结构内第一个 处,然后修改后如果不再跨越 mid ,就往下放。
修改相当于,如果 ,就是两个全局取 min ,否则,以 为例,要把所有 的找出来,修改往下放。查询也是类似的讨论。
这个过程可以 set+BIT+链表+并查集 实现。感觉很难写,开个坑有时间写。
22.P4003 无限之环
需要把所有接口封住,所以考虑把方格黑白染色。每个点能通过旋转来选择一些边界,然后我们要使得选择的边界可以全部贴上。
考虑对每个方格在四个方向上分别建点,然后能贴上的点之间连边。对于染色后的黑点,尝试通过四个点间的连边,让源点的流量流到一个子集;白点类似,连到汇点。
那分四种考虑:
不能转的就直接连;只连向一个点的,考虑源点先向初始点连费用为 的边(简称连 ),再从这个点出发,向相邻两个连 ,向相对的连 。
连向三个点的,类似的,分别考虑初始三个点,先从源点连 ,如果剩下那个点是对点,就连 ,否则连 。
连向两个点的,考虑相对的一对点,源向初始点连 ,初始点再向对点连 ,发现这样恰好是正确的。
跑费用流即可。
23.[ARC155F] Directable as Desired
首先考虑钦定一个根,使得树的形态更清晰。
于是我们枚举一个点集 ,使得 内的点和父亲间的边是 x->fa。
先考虑连 x->fa 的边的方案数,再考虑此基础上连 fa->x 的方案数。
第一部分的方案只和 大小相关,所以我们考虑 个点,连了 条 x->fa 边的森林一共有多少个,再除以 。
考虑构造超级点 ,使森林内每棵树的根连向 ,则变成 个点, 的度数为 的方案数。
使用 prufer 序列处理这个问题,易得 ,除掉 得到 。
第二部分,考虑依次连每一条边,你发现边是无序的,影响了计数。所以我们给边打上标号,一开始连 x->fa 的时候要乘上 。
然后这剩下 条边,它们的方案数与起点无关,并且每连一条边,终点的个数就会 -1 。所以这里方案就是 。
所以一个集合 的答案就是 。
发现除了 ,其他项只与 有关,于是利用分治 NTT 求出 即可方便计算答案。
24.[ARC136F] Flip Cells
PGF 练习题,做过开关那个题基本也会做这个吧。
考虑设出 PGF 计算答案。令 是经过 步第一次达到某个合法状态的概率的 PGF , 是从合法状态到合法状态的 PGF, 是经过 步达到某个合法状态的概率的 PGF 。
则 ,我们的期望是 。有 。
现在需要求 和 。这两个问题是类似的,我们以求 为例。
我们令 表示,从初始状态开始翻转 个格子到达的合法状态的方案数。这是可以背包算出来的。
令 ,则强转 EGF 可以得到 。
显然可以转化成一个 的形式,这里 。我们从小到大枚举 ,用类似背包的方式维护 ,即可计算 。
而 。则转回 OGF 可以得到 。
但这个式子是有问题的,因为式子中存在 这样的项,代入 就 G 了。
考虑 ,这样上面的式子就可算了。复杂度 。
25.P7294 [USACO21JAN] Minimum Cost Paths P
今天场了个黑题,开心。
首先考虑只有两列怎么搞,你要找第 行横着走,则代价是 。
则这个二次函数在 处有最值。看到这个,不难想到,取的列只会在下凸包上。这个证明是简单的。
把询问离线下来,然后每次在凸包上二分一下就好了,复杂度 。
26.CF1801E Gasoline prices
题外话:从跌倒的地方爬起来。这场打太烂了,现在状态正常后回顾这场的题,真的不难,很好上分阿/kk
先考虑树是链的时候怎么做,类似于 [SCOI2016]萌萌哒 ,倍增连边来维护最小生成树。
然后这个题,一开始想的是树剖,后来发现可以直接在树上做倍增,拆成三段直的路径相连,就和链的版本是类似的了。复杂度 。
27.CF1801F Another n-dimensional chocolate bar
显然可以 dp ,记 表示考虑完前 个数后,剩下的数的乘积需要 。
你发现 一定是某个 ,这只有 种。
转移是 to 。
类似于无记忆化的杜教筛的转移。复杂度 。
28.[JOISC2023] festival2
咕咕咕。
29.[JOISC2023] passport
考虑有三种走法,一种是找到 内 最小的,然后 ;一种类似的往右走;一种是 , 。
可以发现我们用前两种操作使区间扩大后,我们一定会在新增的范围内选 L/R 操作,否则一定会一直拓展到 [1,n] 。
所以这个题就分成两步,一步是找一个 ,然后 ,这样弄下去,可以线段树优化建图;一步是到了某个 ,然后 分开拓展到 ,这可以线性预处理。
复杂度 。
30.gym102331C Counting Cactus
考虑根据圆方树的形态进行 dp。令 表示点集 S 内选边连成仙人掌的方案数。
随便取出 的一个固定的点 做根,然后分成两种情况:
-
和 >1 个圆点相连。令 表示 只与一个圆点相连的方案数,则 。
-
和 =1 个圆点相连,相当于要求 ,再把 加到 上。
发现和圆点相连的这些点要构成一个环。于是我们考虑一个 dp:
表示 划分成了若干子集,每个子集中都选了一个点串成一条链,链的左端是 ,右端是 。
则 ,其中 , 与 间有边相连。
这样转移就好了,复杂度是 的。
31.ABC272Ex Flipping Coins 2
考虑算每个点朝上的概率,再乘上 n。考虑算偶-奇,再算偶。此时可以表示成 的形式。
考虑枚举 S 使 的恰为 S ,再枚举 与 不交,来进行容斥。
转换成枚举 ,则他的系数是 。我们要计算 ,其中 表示 中的数都有 的方案数。
把 从小到大排,则 可以写成 的形式。可以设计出来一个 dp ,转化一下可以写成 的形式。
写成 GF,这个转移形如 。如果没有 就好了,怎么办呢。
看到有导数,尝试上点 。两边同乘 得 。于是我们维护一个多项式,这个转移相当于把第 项乘上 。
则可以多点求值算出来这个多项式,再乘上 就能得到原来的多项式。
复杂度 。
32.ARC150F Constant Sum Subsequence
考虑我们这个子序列肯定匹配的越后越好,设 表示所有长度为 的序列最远能匹配到哪里。有 ,其中 表示 后第一个 的位置。
这是一种类似于自己卷自己的结构,所以考虑分治处理。
分治之后考虑枚举 ,观察哪些 是有用的。
是单调递增的,我们考虑 一定大于 ,所以 要 才行。
而这等同于 ,其中 是 或 前第一个 的位置。由此可以二分出有用的 范围。
并且对于 ,由于 ,所以 。这是一个关于 的定值,转移相当于区间取 max ,线段树维护即可。
复杂度 。
33.P9041 [PA2021] Fiolki 2
路径两两不交,想到用 LGV 引理计算答案。注意到行列式非零等同于矩阵满秩。
我们令 表示 到 的方案数,则 的答案等同于,把 看成 维向量后 的线性基大小。
考虑从小到大枚举 ,维护当前的线性基,使编号尽量大,即可计算答案。
一个问题是不能直接计算 f ,可以取个模数,并且给每个边赋一个随机边权。
34.CF1767F Two Subtrees
好题啊。直接四维莫队是 的,过不去,所以我们要思考怎么利用子树的条件。
类似于 dsu on tree 来处理这个过程,则一个子树的信息可以表成一个长度为 的操作序列的前缀。
在这个操作序列上莫队就好了,复杂度 。
35.AGC039F Min Product Sum
我们令 是 这行的 min , 是 这列的 min ,我们按权值从小到达来填 a,b 并由此计数。
现在比较困难的是,想要取到一个 min ,就需要这一行/列至少有一个数 = min。所以我们容斥来做这个过程。
我们先填没被钦定的,再填被钦定的,这样就能顺便算出填矩阵的方案了。复杂度 。
36. UOJ418 【集训队作业2018】三角形
复习 exchange argument。
考虑把操作顺序反过来,就是先操作父亲后才能操作它的儿子。操作一个点 相当于是石子总数先 += ,再 -= 。一开始有 个石子,要使总数最大值最小。
可以把一个操作写成 的形式,即总数变化量,过程中的最大值和初始值之差。有 。
先考虑只询问以 为根时的答案。考虑一开始有 个联通块,分别代表一个操作序列,每次选一个联通块,把这个联通块的序列接到它父亲的操作后面,合并两个联通块。
这样一定能构造出所有合法操作序列,所以我们以这个构造方式的来贪心:
考虑 是否一定在 前面。我们想发现这个二元组存在一种偏序关系。
由于这个二元组的加法有结合律,我们只需考虑 是否比 更好。
即判断 。分类讨论一下, 都 时就是 ; 时就是 ; 正负性不同就是负的那个更优。
由此贪心即可,用一个 set,每次取出最小的联通块,和父亲连起来就好了。
对于每个子树,发现它的操作序列是整棵树操作序列的子序列,线段树合并维护即可。复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?