CF 复健记录

中考完了,两个月没碰电脑,那我问你,是不是残废了。

6.20 ~ 7.24 还上综合,上七休零,都放暑假了还 7:00 ~ 10:30,你要赤石吗。
CQ 40多度还不放高温假,你要烧烤学生吗。

这五周也没干个啥,接下来就做做题单,做做 CF。

2025.7.28 起开始详细记录 CF 做题情况。之前做的会把看到的有意思的题在这里写写做法。

2025.7.28

CF2004E Not a Nim Problem

不会博弈论啊。学一下 SG 函数。
把问题转化为一个 DAG,两个玩家在这个 DAG 上移动棋子,最后不能移动的玩家输掉游戏。
对于这个 DAG 上一个点 \(u\),其指向点集 \(S\),则

\[SG(u) = \operatorname{mex}\limits_{v \in S} \{SG(v)\} \]

如果有若干个游戏,那么最终状态的 SG 函数为他们的异或和。若此值不为 \(0\),则先手必胜,否则后手必胜。

那么这个题,点 \(u\) 能走到 \(v\) 需满足 \((u - v) \perp u\)。根据观察,把前几个数的 SG 函数写下来,做的时候写到了 \(8\),发现前几个是在 1234 之间都插了一个 0,十分兴奋,直接开写。

然后没过样例,这个时候发现 \(9\) 状态的 SG 函数为 \(2\),结论猜错了。赤石呢。
打表出来发现,奇质数的 SG 函数是连续的,偶数的 SG 函数均为 \(0\)。而奇合数 \(x\) 的 SG 函数为其最小质因子的 SG 函数值 \(SG(p)\)。显然 \(\forall y < p\)\(x \to y\),而 \(x\) 一定不指向 \(SG(p)\),故 \(\operatorname{mex}\) 即为 \(SG(p)\)。然后就做完了。

CF2051G Snakes

\(f_{s,i}\) 表示当前从左到右放置蛇状态为 \(s\),最后一条放置的蛇为 \(i\) 的最小得分。
预处理两条蛇之间至少需要间隔开的距离,然后简单转移就行。

CF2003D2 Turtle and a MEX Problem (Hard Version)

ez-ver.是唐题,小于最大次小 mex 的数全都能变为最大次小 mex,大于其的不变。

hd-ver.考虑建图,将每个序列最小 mex 向次小 mex 连边,因为是一个小的数向大的数连边,故会得到若干 DAG,DAG 上的点一定能走到终点,即最大值,但考虑一种情况,当某个 DAG 中的某个点出度为 \(2\),则所有点都能到达这个 DAG 的终点,这是显然的。

然后就做完了。

CF1996G Penacony

奶龙线段树。

2025.7.29

模拟赛打成石了。

T1 写的最复杂做法,T2 轮廓线太久没写没调出来,T3 ddp 真不会了,T4 期望也不会。

垫底 +1。

随便乱做 CF,没啥很有价值的题。

2025.7.30

cy 你咋这么牛。

模拟赛挂分。T1 线段树+组合计数,T2 会不了一点,T3 暴力 80pts 还写挂了,写个 \(\mathcal{O(n^3)}\) 暴力还能写错,赤石呢。T4 题都没看,全场 \(0\) 个人得分。

cy 你咋这么牛,说 T2 是艾斯比。

被吊打了。

今日完成 CF 500 题,和 cy 切了一个 *2400。cy 还是太牛了。

CF1887C Minimum Array

记一个糖糖 trick,但需要区间修改以及求每次修改后字典序最小时,可以考虑像线段树维护差分一样单点修改,维护一个初始全为 \(0\) 的差分数组,当全局第一个不为 \(0\) 的数 \(<0\),那么证明当前该次修改后字典序最小,然后清空差分数组。正确性显然。

2025.7.31

怎么就七月份最后一天了。

研究了一上午 wqs 二分,下午准备写写博客。

晚上来做 CF。

2025.8.3

基本上爽玩了两天,但是我没有手机,只能看他们玩/cf

模拟赛依然垫底。

CF 随便做做 DP。

2025.8.4 ~ 2025.8.6

模拟赛模拟赛模拟赛

挂挂挂

2025.8.7

困了一天。

晚上决定要再研究一下线段树全家桶。

你问我 CF 呢。没有什么有价值的题。

2025.8.8

晚上放假。爽了。

2025.8.9

颓了一天,晚上打 abc。

abc 炸了

F DDP 不会。

G 大力分讨没时间写。

E 题纯赤石呢。

掉分了哥们。

2025.8.13

要放假了。还有 3 天。

CF383C Propagating tree

发现子树内 \(val\) 的正负显然与深度的奇偶性有关,然后就不会了(?)。

实际上动动脑子就会想到一个很奶龙的做法。首先把树拍到 dfs 序上,然后如果要修改以 \(u\) 为根的子树,那么判断 \(d_u\) 的奇偶性,如果为奇数则子树加,如果为偶数则子树减,同理查询时深度为奇数则用初始的 \(\{a_n\}\) 多加上该点的值,反之减去。这样可以保证奇偶正负一定是错开的,算是一个小 trick 吧。

posted @ 2025-07-29 21:11  songszh  阅读(294)  评论(2)    收藏  举报