2025 年日祭

· · 个人记录

最新内容见 此处。

本文将同步发表于洛谷(暂无法访问)、CSDN 与 Github 个人博客。

2025.1

2025.1.4 新的一年

今日歌曲:New Year's Day

去年停课的时候是有记日祭的,但是有一些是手写的,一直都还没有整理好。今天看到一个简单的trick,想记下来。于是,就又开始写日祭了。

今天下午给初二机房的办了一场比赛,整体比较顺利。(所以没做什么题。)比赛链接:CWOI ER 1 & NYR。

今天感觉要掉橙了,但是Rated的比赛还要等一周。想着把之前那篇被打回的题解改了交了,但是晚上写给初二机房的的题解了,没空。看明天改吧。

2025.1.10 新的开始

今日歌曲:Castles Crumbling

今天考完期末,回来一看,天塌了,掉橙了。明天打一场比赛。

现在终于确定15班后续的各种事项了。又是一个新的开始

另外,我就莫名奇妙地进省选了(尽管是体验名额)。还有一个有趣的事实:

我没有提高组一等奖,然而我进了NOIP(体验名额);我没有NOIP一等奖,但我进了省选(体验名额)。

期待人生中的第一场SCOI(希望不要爆零)。

2025.1.12 言而无信

今日歌曲:Back To December (好吧其实是存货)

我果然是一个言而无信的人。踩一脚前天的日祭,昨天还是没打比赛。

今天%你赛,除了暴力的B和C,其它全挂了分。至于A,调试的时候把模数写掉了。被暴扣70分呜呜呜。

最终荣获 30 + 10 + 30 + 0 = 70分。

2025.1.13 乐极生悲

今日歌曲:Wonderland

今天期末考试考完了,整体还行,语文更是考到了惊人的 127.5,要知道我之前最高的一次也就 122 左右,而且还经常上不了 120,这次简直是超常发挥。听到成绩的时候直接喜极而泣了。

下午体育课,刚好初一体锻放歌,放得全是霉霉的歌,我还去点了几首。开心。

然而下课要集合的时候,我小跑了一下,而这下就恰好被足球爆头,眼镜镜架直接断掉,箍牙的铁丝直接断掉,嘴皮直接被铁钉磨得烂掉,鼻子被眼镜压了一个印子,还在流鼻血。

真是乐极生悲

2025.1.17 傻子游戏

今日歌曲:Foolish One

今天开始上课六天。

昨天听说 jmr 拿了清华一等约。祝贺他。

这周二(1.14)已经回到15班了。

昨天晚上玩梗发癫,还玩了离谱的傻子游戏。达成成就:在5.5h里睡够8h。

上午%你赛,T1忘了判零挂了10pts,T3是之前做过的一道原题,于是赛时死磕,最后没调出来。赛时的思路基本上是对的,但是没想到容斥;又因为我钦定的一个条件有问题,导致正确性略有问题,最后没调出来。

喜提 90 分。

晚上打了入门赛,可以加咕值了。

晚自习最后10分钟,记一些话。

我的信竞,在进步么?看起来好像是的。要是拿现在的我和一年前的我对比,那已足以 k 倍杀。但……补过的题还是不会做,码量大一点的又不愿意写,一到晚自习就写不动了,于是写一会儿又开始划水。我倒有一个优点,就是一般不会去刷水题(除了入门赛)。但是,难一些的题……绿题效率低,蓝题想不全于是又看题解,紫题几乎无法独立完成。

最终做了的题似乎是白做。

……

终究还是人的问题。

2025.1.18 正难则反

今日歌曲:Wildest Dream

这两天换了头像。

今天上午VP CodeForces Round 997 (Div. 2)。

下午先把E题改了,学习了一下吉司机线段树。这东西挺好理解的,写起来也很爽,但就是又臭又长又难调。

今天整理了一些去年的日祭。还没把手写的整理上去。

2025.1.19 简直糖丸

今日歌曲:All You Have To Do Was Stay

今天上午%你赛,T1爆零了,简直糖丸。一共得了 60 分的分。

下午给初二讲题,讲得……简直糖丸

烦球,今天最后几乎啥都没干。

啊不是为什么T1爆炸啊。

2025.1.20 简直乐丸

今日歌曲:Daylight

昨晚又是在5.5h内睡满8h的一晚。

今天上午VP CodeForces Round 998 (Div. 3)。才做四道,糖丸了。

今天下午看了一个2025年度第一个乐子(原帖,内部帖),简直乐丸

又一个新梗诞生了:

@chen_zhe 管理制度错了就要改,不能让无辜的人以泪洗面,如果管理制度还是这样的话,洛谷将会越来越腐败!!,我大不了就棕名,我要让洛谷知道瞎诬陷的严重性!

2025.1.21 反则难证

今日歌曲:deja vu

今天上午VP CodeForces Round 999 (Div. 1 + Div. 2),状态还好。

F 听不懂。

附一张梗图。

(这里声明一下,不是 jmr 讲得不好,而是实在听不懂。)

2025.1.22 比特塞特

今日歌曲:Maroon

年前最后一天了。

上午%你赛 100+10+60+0=170,\ rank\ 4。T3没用 bitset 优化暴扣了 40 分。可恶。

2025.2

2025.2.8 水讨论区

今日歌曲:Bigger Than The Whole Sky

今天洛谷讨论区关闭了。(以后不能水讨论区了。)

这个寒假,什么也没干。一看进度,已经和初二的差不多。但是他们第一遍拉得挺快,估计效果不大。

我如果现在回去,在那边又吃不饱。于是,就只有多肝一肝,把之前的进度补上来。

晚上打ABC392。

2025.2.9 终于战胜

今日歌曲:Holyground

综合题1。

今天本来说再补补昨天的 F,改改昨天的 E,结果今天的第三题看半天看不懂,昨天的 E 和 F 都没做。

最终今天做了四道题。

感觉心态有点崩。(尤其是看第三题的时候。)

……

2025.2.10 放弃即可

今日歌曲:Peace

综合题2。

今天还做出了一道题。

今天还举办了 CWOI ER 2 & 1 > 2 Round,感觉对于他们还是太难了。

(今天字符数破 1e4 了。)

2025.2.11 放弃即可

今日歌曲:Pink Pony Club

模拟赛 40 + 40 + 100 = 180,\ rank\ 2

这几天强度还是比较高,因为跟进度跟得有点吃力了。今天晚上眼睛疼,难受。

2025.2.12 罚时吃饱

今日歌曲:two years

今天上午VP Codeforces Round 1004 (Div. 2),下午改Codeforces Round 1004 (Div. 1)。上午C题因为少判了一个条件,罚时吃饱了。

今天晚上略水……没做题。但是今天一天综合下来……还将就吧。

2025.2.13 笑点解析

今日歌曲:evermore

今天 jmr 终于回来了。

今天学习了李超线段树。

今天 \mathrm{CCF}\mathrm{XXSs}\mathrm{ban} 了。适度阻止竞赛低龄化是有道理的,没必要小学就开始竞赛,而且有些 \mathrm{HNO_3} 真的很没数值;但另一方面,以后的分数线会有所上升。

今天晚上 \mathrm{yishu2} 让我们帮他帮另一个人验初赛题。那题……一言难尽。

2025.2.14 绝世好题

今日歌曲:Red Wine Supernova

今天%你赛,\mathrm{only\ 130\ pts}

因为今天一下午加晚上一直苦攻 T2,所以昨天的题还没来得及补。

今天写得很晚了,准确来说已经第二天凌晨了。今天就到这里。

2025.2.18 无处不在

今日歌曲:I Forgot You Existed

“我无处不在。”——\mathrm{yishu2}

今天在改游戏那道题,最终决定重构!

2025.2.20 笑点解析

今日歌曲:The Archer

今天还是在改游戏,最后终于还是改出来了。笑点解析又来了。

2025.2.22 显而易见

今日歌曲:wish you were gay

- A - 怎么又是先增后减 ([[Atcoder joisc2014_b] [JOI Day2 T2] たのしい家庭菜園](https://atcoder.jp/contests/joisc2014/tasks/joisc2014_b)) ~~论赛时代码只与正解相差两行,赛时是有多糖。~~ **显而易见**,一个数要么放左边,要么放右边。若放左边,则需要交换当前数与左边逆序对的个数,右边同理。**显而易见**,取较小的一侧的答案。用数据结构维护即可。 ### 2025.2.25 数组开小 今日歌曲:mirrorball - [[Codeforces 241E] Flights](https://codeforces.com/problemset/problem/241/E) 神秘又简单的差分约束。显而易见,我们只关注在 $1$ 到 $n$ 路径上的点,并且 $1$ 到路径上每个点的距离都是唯一的。那么有 $1 \le dis_v - dis_u \le 2$。差分约束即可。 做的时候由于**数组开小**了,挂了若干发,也是糖丸了。 - [[洛谷 P1993] 小 K 的农场](https://www.luogu.com.cn/problem/P1993) 模板题。 ### 2025.2.27 联合省选 今日歌曲:It's Nice To Have A Friend 今天写了一点[**联合省选** 2025 游记](https://www.luogu.com.cn/article/xwqnqvwa)。 - [[洛谷 P4926] 倍杀测量者](https://www.luogu.com.cn/problem/P4926) 模板题。 - [[洛谷 P2474] [SCOI2008] 天平](https://www.luogu.com.cn/problem/P2474) 不怎么板但码量极小的题。 我们要求的是满足 $x_a + x_b \lt x_i + x_j, x_a + x_b = x_i + x_j, x_a + x_b \gt x_i + x_j (i \ne j, i \ne a, b, j \ne a, b)$ 的无序二元组 $(i, j)$ 的个数。由于我们并不知道 $x$ 中的具体数值,只知道部分大小关系,又发现我们可以把上述和式转化为差式,所以维护两个数的差的范围即可。 ## 2025.3 ### 2025.3.1&2 正常说话 这两天参加省选。这里用**正常的说话**方式补充一些有关考试题目的内容。 - [[洛谷 P11830] [省选联考 2025] 幸运数字](https://www.luogu.com.cn/problem/P11830) 钦定中位数为 $x$,设可重集中小于 $x$ 的数的个数为 $l$,等于的是 $e$,大于的是 $r$,那么有 $l + e \ge r, r + e \gt l$,所以 $l - e \lt r \le l + e$。为了让 $x$ 尽量成为中位数,那么考虑让 $e$ 尽可能大,即能取 $x$ 的都取 $x$。同时可以得到 $l, r$ 的范围,便可判断。用差分维护即可。 - [[洛谷 P11833] [省选联考 2025] 推箱子](https://www.luogu.com.cn/problem/P11833) 先考虑打一个暴力,随后发现是区间覆盖(覆盖成 $x + i$,其中 $x$ 是给定值,$i$ 是下标。)与区间查询。线段树维护即可。(可是我不会告诉你我写的双 $\log$ 可能要挂分。) ### 2025.3.4 难度偏高 今日歌曲:The Lucky One 今天补了一下 USACO25JAN,铜组**难度感觉偏高**啊。 - [[洛谷 P11667] [USACO25JAN] Astral Superposition B](https://www.luogu.com.cn/problem/P11667) 思维题。先处理 ``B``,这两颗星星一定一颗在当前位置,一颗在左上方对应的位置。接下来处理 ``G``,如果当前位置能够由已有的星星移动而来,则忽略;否则当前位置需要一个星星。即可。 - [[洛谷 P11672] [USACO25JAN] Table Recovery S](https://www.luogu.com.cn/problem/P11672) 这题一直没改,今天终于改了。先统计出每个数出现了多少次,仅出现了一次的两个数中的一个便是第一个数。又由于第一个数所在的行/列中的每个数的出现次数是不重复的,于是就可以根据第一个数推出整个表格。比较两个答案中更小的一个输出即可。 ### 2025.3.6 正难则反 今日歌曲:Naked In Manhattan 今天中午 C 老师请吃饭,回来就出省选成绩了。省选总分 $232$,折合 $58.71$,$\mathrm{CW\ Junior\ rk\ 3}$。(其实一共也就 $6$ 个初中生。) 今天略水。 - [[洛谷 P11672] [USACO25JAN] Reachable Pairs G](https://www.luogu.com.cn/problem/P11674) 有趣的**正难则反**。对于 $1$ 操作,相当于把当前点换成一个超级原点并不参与计数。所以考虑倒推,先建边(并查集合并)再加贡献。具体地,对于一条边 $u \to v (u \lt v)$,若: - $s_u = 1, s_v = 1$:由于两个点都是超级原点,直接合并 $u, v$ 所在的块。 - $s_u = 1, s_v = 0$:当枚举到 $v$ 时合并 $u, v$ 所在的块。 - $s_u = 0$:当枚举到 $u$ 时合并 $u, v$ 所在的块。 枚举到一个点再加入贡献即可。 ### 2025.3.8 ~~打表可得~~ 今日歌曲:Starlight $\%0\sin$。 - A - 114514 题目:定义函数 $f(x)$,其中 $x$ 是一个长度为 $n$ 的序列。这个函数的值 $y$ 满足: - $y$ 的长度为 $n$。 - $y$ 中的元素互不相同。 - $\forall i \in [1, n], x_i \le y_i$。 - $y$ 是满足上述条件的序列中,字典序最小的。 现给定 $y$,求有多少个序列 $x$ 使得 $f(x) = y$。 题解:**~~打表可得~~**,每个位置可能的值是独立的,即对于任意一个**位置** $i$,$a_i$ 的取值集合不会随其他值的改变而改变。设 $vis_i$ 表示**值** $i$ 是否出现过,那么对于 $a_i$ 的取值范围就是 $[l, i]$,其中 $l$ 满足 $\forall k \in [l, i], vis_k = 1$ 且 $vis_{l - 1} = 0$。并查集维护即可。 - C - 深黯「军团」 题目:给定 $n, k, mod$ 与一个长度为 $n$ 排列 $a$。计算从 $a$ 开始的接下来 $k$ 个排列的逆序对个数之和。 题解:神秘数位 DP。这题赛时还是想到了许多,但是考试时误认为 $a$ 的较高位不会改变,所以挂成 $20$ 分(数据好水)。 赛时想到了通过求一个排列的逆序对来算排名,也想到了要求的就是排名在一个区间内的排列的逆序对数之和,还**~~通过打表~~**想到了全排列的逆序对个数的 DP,甚至还想到了类似于阶乘进制的东西,可是因为不会[康托展开](https://oi-wiki.org/math/permutation/#%E6%8E%92%E5%90%8D)而没写出来。 具体地,将 $k$ 与排列 $a$ 康托展开。由于康托展开的值的数位之和就是逆序对个数,所以答案为 $\sum_{i = a}^{a + k} count(i)$,其中 $count(i)$ 表示 $i$ 的数位之和。对于重复的部分,直接 DP 即可。 ### 2025.3.11 观察样例 今日歌曲:Getaway Car 要改名了。今天 VP [Codeforces Round 1008 (Div. 2)](https://codeforces.com/contest/2078),打得烂的一匹,最开始只做了 A 和 B,不过幸好在 2:28 把 E AC 了,不然今天晚上整个人都不好了。 - [[CodeForces 2077A & 2078C] Breach of Faith](https://codeforces.com/contest/2077/problem/A) 赛时一直在求 $a_1$,然后就被卡死了。 事实上,发现 $a_2$ 更好求一些。$a_2 = a_1 + a_{2n + 1} + a_3 - a_4 + a_5 - a_6 + \dots + a_{2n - 1} - a_{2n}$。显而易见,把最大值作为 $a_1$ 即可不重复。排序即可。 - [[CodeForces 2077B & 2078E] Finding OR Sum](https://codeforces.com/contest/2077/problem/B) 神秘交互题。以下均讨论八位整数。**观察样例**发现,询问 $0$ 似乎比较有用,可以直接得到 $x + y = sum$。再~~根据直觉~~,考虑询问 $01010101$,将得到的答案 $ans$ 再减去 $sum$ 就可以得到 $1$ 的贡献。为了不让每一位的贡献重叠,我们便想到空一个位置放一个 $1$。这样,我们就可以根据这些数位的贡献来算出这些数位的和(指 $x, y$ 对应数位之和)。剩下未知的数位也便可以根据 $sum$ 与已知的数位求出。显而易见,求答案时我们并不在意当前数位具体的值,只在意数位和。所以对于 $m$ 的每一位只用分讨 $0$ 或 $1$ 即可。 这种题确实挺直觉的,个人觉得也比较靠运气。~~比如我 C 想了半天就是想不到,这题基本是看一眼就有点想法而且就对了,甚至还是一发入魂。~~ ### 2025.3.15 嗨克数据 今日歌曲:This Is Why We Can't Have Nice Things $\%0\sin$。 - D - 完美的答卷 题目:给定长度为 $n$ 的数组 $a$,设 $f_{l, r} = (\max_{i = l}^r a_i) \oplus (\min_{i = l}^r a_i)$,求 $\max_{1 \le i \le j \le n} f_{i, j}$。 题解:本题数据过水,以至于赛时对拍拍出了问题但是交到 OJ 上过了。赛时这题也想到了许多,可是逻辑并不清晰,最后还是看了题解并与 dpfs 讨论才想出了以下的解法。 钦定 $a_i$ 是一个区间的最大值,$a_j$ 是这个区间的最小值,且 $j \lt i$。设 $pre_i$ 表示 $i$ 左侧第一个比 $a_i$ 大的位置,则 $j \in (pre_i, i)$,且 $j$ 在 $[1, i]$ 的单调(递增)栈中,单调栈 + 01trie 维护即可。可是,上述两个集合的交集不一定从 $1$ 开始,所以对于 trie 树中的一个节点 $i$,维护 $mx_i$ 表示经过该点的数的**下标的最大值**,便可以解决。可是删除又成为了一个问题。考虑用 vector 暴力维护每个 $mx_i$ 的历史值,理论上时间复杂度不变,只是常数巨大。 改完之后,就开始造 **hack 数据**了。似乎有用但不多。 ### 2025.3.18 极限 AC 今日歌曲:Paper Rings 今天 VP [Codeforces Edu Round 176](https://codeforces.com/contest/2075)。由于准备 VP 时 CF 还在系统测试,所以并不算严格意义上的 VP。最后一共做了 4 道,而 D 是在 VP 1:54 时才 AC,此前还有 3 发罚时。也是**极限 AC**。 - [[CodeForces 2075C] Two Colors](https://codeforces.com/contest/2075/problem/C) 先将 $a$ 排序。发现对于某一种颜色,能够与其搭配的颜色都是连续的一段。所以前缀和并动态维护能够搭配的区间即可。注意略特判 $a_i = n$ 的情况。 - [[CodeForces 2075D] Equalization](https://codeforces.com/contest/2075/problem/D) 注意到花费不能重复,所以考虑背包 DP。设 $dp_{i, j}$ 表示将 $x$ 右移 $i$ 位、将 $y$ 右移 $j$ 位的最小代价,转移十分显然,即可 $O(\log_2^2 n)$ 无脑做。然而由于我赛时**太有脑了**,非要写 $O(\log_2 n)$,最后调了好久才过。~~下次再也不长脑子了。~~ ### 2025.3.20 疑似双休 今日歌曲:I Hate It Here 后天不用上课,这周**疑似可以双休**了! 今天在补好题推荐。 - [[CodeForces 2078D] Scammy Game Ad](https://codeforces.com/contest/2078/problem/D) 很符合“时下流行”的题目了。 考虑 DP,设 $dp_{i, 0/1}$ 表示从第 $i$ 个左/右门开始,到最后一个门的**最大倍率**。转移也是十分显然的。对于第 $i$ 对门通过加法新产生的人数 $x$,将答案加上 $x \cdot \max(dp_{i + 1, 0}, dp_{i + 1, 1})$ 即可。注意最初还有 $2$ 个人。 ### 2025.3.22 并不是双休,在家里 VP 模拟赛。 ### 2025.3.25 打 USACO,菜得银组一道都不会。 ### 2025.3.27 - [[CodeForces 2077C] Binary Subsequence Value Sum](https://codeforces.com/contest/2077/problem/C) 极其有趣的题目了。 显而易见,$F(v, l, r) = one(v, l, r) - zero(v, l, r)$,所以一个字符串的权值 $W(v) = \lfloor \frac{(one(v) - zero(v))^2}{4} \rfloor$。把 $0$ 换 $-1$,那么 $W(v) = \lfloor \frac{sum^2(v)}{4} \rfloor = \frac{sum^2(v) - (sum(v) \mod 2)}{4}$。继续将这个式子化简即可,~~这里不再赘述~~。 - [[CodeForces 2082B] Floor or Ceil](https://codeforces.com/contest/2082/problem/B) 从二进制角度思考,向上取整等同于先加一再右移一位,向下取整则是直接向右移一位。所以,若一个向上取整操作后还有一个向下取整操作,那么这个向上取整操作相当于是无效的。又有在 $n + m$ 次操作之后,**最大值最多比最小值大一**。所以对于最小值,先向上取整再向下取整即可,最大值反之。 - [[CodeForces 2081A] Math Division](https://codeforces.com/contest/2081/problem/A) 考虑多操作一次的期望。多操作一次,则代表在第 $n$ 位上产生了进位,又因为 $a_n = 1$,所以前 $n - 1$ 位产生了进位(第 $n$ 位是最高位)。设 $dp_i$ 表示前 $i$ 位进位的期望,则: $$ dp_i = \begin{cases}\frac{1}{2} \times dp_{i + 1},\ a_i = 0\newline\frac{1}{2} \times (1 - dp_{i + 1}) + dp_{i + 1},\ a_i = 1\end{cases} $$ 直接 DP 即可。 ## 2025.4 ### 2025.4.1 愚人节 今日歌曲:Forever Winter 我的日祭之前断更了一段时间,今天终于补上了。 今天改不动题,于是在出题。 ### 2025.4.6 水讨论区 今日歌曲:Guilty Pleasure 讨论区居然真的回来了,又可以**水讨论区**了(。 今天 VP [Codeforces Round 1015, Div. 1 + Div. 2](https://codeforces.com/contest/2084),赛后结算时,发现机房网络得了 MVP。详见犇犇。 前四题都是沟槽构造,不再赘述。 - [[Atcoder ABC400F] Happy Birthday! 3](https://atcoder.jp/contests/abc400/tasks/abc400_f) 考虑正难则反。问题转化为: > 一个环上有 $n$ 个物品,颜色分别为 $col_i$,每次操作选择两个数 $i, j$ 使得 $\forall k \in [i, j], col_k = col_i \lor col_k = 0$,对 $[i, j]$ 进行“漂白”,即将颜色都设为 $0$。一次操作的代价为 $j - i + 1 + x_{col_i}$。求将整个环漂白的最小总代价。 先断环为链。设 $dp_{i, j}$ 表示将 $[i, j]$ 漂白的最小代价,那么显然有 $dp_{i, j} = \min_{k = i}^{j - 1} dp_{i, k} + dp_{k + 1, j}$。 设 $f_{i, j}$ 表示使 $[i, j]$ 能够漂白的最小代价,那么显然有 $f_{i, j} = \min_{k = 1}^{j - 1} f_{i, k} + dp_{k + 1, j}$。当 $col_i = col_j$ 时,有 $f_{i, j} = \min (f_{i, j}, f_{i, j - 1}), dp_{i, j} = \min (dp_{i, j}, f_{i, j} + j - i + x_{col_i})$。 答案即为 $\min_{i = 1}^n dp_{i, i + n - 1}$。 - [[Codeforces 2086E] Zebra-like Numbers](https://codeforces.com/contest/2086/problem/E) 确简单的啊,可是自己就是想不到。 考虑计算一个数的斑马值。贪心地,尽量选大的斑马数减即可。 考虑记搜,设 $dp_{i, j}$ 表示 $[1, i]$ 中斑马值为 $j$ 的数的个数。那么显然有 $dp_{i, j} = dp_{i - mx, j - 1} + dp_{mx - 1, j}$,其中 $mx$ 是不大于 $i$ 的最大的斑马数。具体地,$dp_{i - mx, j - 1}$ 表示 $[mx, i]$ 中斑马值为 $j$ 的数的个数,$dp_{mx - 1, j}$ 表示 $1, mx - 1$ 中斑马值为 $j$ 的数的个数。 ### 2025.4.8 过水了 今日歌曲:it's time to go **过水了**今天。 ### 2025.4.10 证明略 今日歌曲:The Albatross - [[Atcoder ARC196A] Adjacent Delete](https://atcoder.jp/contests/arc196/tasks/arc196_a) 唐题啊,可是和我相比还是我更唐。 假设 $n$ 是偶数。如果我们忽略删除相邻数的条件,即可以任选两个数相减,那么答案应该是前 $\frac{n}{2}$ 大的数(记作“较大数”)的和减去前 $\frac{n}{2}$ 小的数(记作“较小数”)的和。 容易发现,当我们只能选相邻数相减时,依然可以达到这个答案,因为在任意时刻,总存在至少一对较大数与较小数相邻。 当 $n$ 是奇数,那么一定有一个元素不被选,且这个元素一定在奇数位,这样才能把数组分成长度为偶数的两段。枚举不被选的位置,用对顶堆维护前后两段的答案即可。 - [[Atcoder パ研合宿2024 第3日 E] Roller Coaster](https://atcoder.jp/contests/arc196/tasks/arc196_a) 人类智慧啊。选高度差最大的边即可。**证明略。** - [[Atcoder パ研合宿2024 第3日 G] Bracket Sequence](https://atcoder.jp/contests/pakencamp-2024-day3-2/tasks/pakencamp_2024_day3_2_g) 极一眼啊,大概十分钟切了吧。跟翻转括号序列的一个区间那题差不多,这题还简单一点。 注意到位置 $i$ 可由 $i - 1$ 与跟 $i$ 位置高度相同的位置转移而来。拿一个桶维护后者即可,遇到右括号时记得清零。 ### 2025.4.12 写了跟写了一样 今日歌曲:august 模拟赛。 - A - 倒水 题目:有三个容量分别为 $x, y, z$ 的杯子与一个容量为 $n$ 的一个桶,每次可以: - 把一个杯子灌满; - 把一个杯子的水倒出去; - 把一个杯子的水倒到另一个杯子直到这个杯子空了或另一个杯子满了; - 把一个杯子的水倒到桶里。 对于 $[1, N]$ 中的每一个 $n$,求要使桶装满水,最少的操作次数。 题解:$\mathrm{yishu2}$ 发的题解**写了跟写了一样**。 容易发现,经过转化,可以得到两种操作:向桶里加 $x / y / z$ 单位水与从桶里舀出 $x / y / z$ 单位水回到对应的杯子(后者是操作一与操作三的结合),每次操作的代价都为二。注意到,对于某一个水杯,若我们用它进行的最后一个操作是操作二,那么代价为一,因为不用把舀出来的水倒出去。设 $dp_{i, j}$ 表示桶里有 $i$ 单位水的最小代价,$j$ 表示三个水杯是否最后用于操作二,那么先正着 DP 一遍,即全部使用操作一,再反着 DP 即可。统计答案时应统计 $dp_{i, j} - popcount(j)$。 - B - 让他们连通 ([[Codeforces 1706E] Qpwoeirut and Vertices](https://codeforces.com/problemset/problem/1706/E)) 居然能场切 $2300$。 要让区间 $[l, r]$ 连通,等价于 $\forall i \in [l, r)$,$i$ 与 $i + 1$ 连通。设 $time_i$ 表示 $i$ 与 $i + 1$ 连通的时间,则答案为 $\max_{i = l}^{r - 1} time_i$,可以用 ST 表维护,常数又小又好写。 对于 $time_i$,考虑启发式合并。在合并时,枚举较小的集合的元素,并判断它是否与另一个集合中的元素相邻即可。赛时因为没判 $fa_x = fa_y$ 被硬控了半个小时。 ### 2025.4.15 不想证明 今日歌曲:cardigan - [[Atcoder パ研合宿2024 第3日 G] 門松](https://atcoder.jp/contests/pakencamp-2024-day3-1/tasks/pakencamp_2024_day3_1_k) 无脑做啊,**不想证明**。 - [[Atcoder パ研合宿2024 第3日 H] Big XOR Game](https://atcoder.jp/contests/pakencamp-2024-day3-1/tasks/pakencamp_2024_day3_1_H) ~~这题评分比括号序列还要低。~~ 从高到低讨论,对于每一位,设当前位上是 $1$ 的数的个数是 $cnt$,那么有: ```cpp if(((cnt + 1) / 2) & 1 and (cnt / 2) & 1 ^ 1) Alice; if(((cnt + 1) / 2) & 1 ^ 1 and (cnt / 2) & 1) { if(n & 1) Bob; else Alice; } ``` 不想详细说明。 ### 2025.4.19 输入挂了 今日歌曲:Sad Beautiful Tragic TTPD 一周年了。 今天模拟赛因为**输入挂了** $76 pts$,机房 rating ~~暴涨~~暴跌。 - A - 说唱入门教学 题目:给定一首歌的歌词(以拼音形式),每两句话一一匹配,$\forall i \in [1, m]$,求出 $i$ 押的个数。 题解:题面好唐。先把韵母处理出来,然后 trie 树即可。常数极大。 - B - 画画入门教学 构造题,手动推一推小样例即可。 ## 2025.5 ### 2025.5.5 了跟了一样 今日歌曲:Fifteen 又断更了半个月。 前几周学了一下 AC 自动机,~~但是**学了跟学了一样**。~~ 前几天终于把那套题出完了,~~但是**出了跟出了一样**。~~ 昨天考试,听了评讲,~~但是**改了跟改了一样**。~~ 晚上打 ARC,~~但是**打了跟打了一样**。~~ - [[Atcoder ARC197C] Removal of Multiples](https://atcoder.jp/contests/arc197/tasks/arc197_c) 唐题啊,但是赛时一直在想整除分块之类的,结果没想出来。 但是这题也就真纯唐,用线段树维护区间内留下的数的数量即可。需要证个上界。 - [[Atcoder ARC197D] Ancestor Relation](https://atcoder.jp/contests/arc197/tasks/arc197_d) 好题啊好题。记 $b_i$ 表示矩阵的第 $i$ 行的内容(用 bitset 维护)。 考虑什么时候有 $a_{u, v} = 1$。因为与孩子有关系的节点一定与祖先有关系,但与祖先有关系的节点不一定与孩子有关系。所以有 $b_u | b_v = b_u$ 或 $b_u | b_v = b_v$,前者对应 $u$ 是 $v$ 的祖先,后者则对应 $v$ 是 $u$ 的祖先。容易证明这是一个充要条件,那么若 $a_{u, v} = 0$,则一定不存在 $b_u | b_v = b_u$ 与 $b_u | b_v = b_v$。 接下来考虑一种特殊情况:$b_u = b_v$,此时 $u, v$ 在一条没有任何分岔的一条“链”上,那么这条链上的节点的位置就可以互换。设一组 $b_i$ 相同的点的数量为 $sz$,那么这一组点可以带来 $sz!$ 的贡献。 此外,$\forall i \in [1, n]$,显然需要有 $a_{i, 1} = 1, a_{1, i} = 1$。那么我们就总结出以下三条条件或贡献: - $\forall i \in [1, n], a_{i, 1} = 1, a_{1, i} = 1$。 - $b_u | b_v = b_u$ 或 $b_u | b_v = b_v$,当且仅当 $a_{u, v} = 1$。(等价于:$a_{u, v} = 1$,当且仅当 $b_u | b_v = b_u$ 或 $b_u | b_v = b_v$。) - 对于极多的 $sz$ 个 $b_i$ 相同的数,可以带来 $sz!$ 的贡献。 于是按以上三点计算即可。 ### 2025.5.18 宇宙射线 由于**宇宙射线**的影响,这里遗失了一篇日祭。主播不想补日祭了。 前几天又断更了,应该是在补 CQ CCPC 的题吧。主播不想补日祭了。 (我明明写了的,可不知道这篇日祭怎么就消失了。) ### 2025.5.22 主播不想补日祭 今日歌曲:High Infidelity 前天又学了一下 exgcd。**主播不想补日祭**了。 今天考试。 - A - 三重移位 ([[Atcoder ARC136B] Triple Shift](https://atcoder.jp/contests/arc136/tasks/arc136_b)) 略为神秘。观察到,进行一次操作后,逆序对个数的变化量一定是偶数,所以 $a$ 与 $b$ 的逆序对个数的差值必须是偶数。另外,当 $a$ 中存在重复的元素,那么相当于可以造一对逆序对出来,此时一定有解。 - B - 最小差分和 ([[Atcoder ARC147C] Min Diff Sum](https://atcoder.jp/contests/arc147/tasks/arc147_c)) [题解](https://www.luogu.com.cn/article/u6eyulti)。 更好的做法如下:假设当前 $x$ 有序,那么可以拆贡献。拆下来是 $\sum_{i = 1}^\frac{n}{2} (n - 2i + 1)(x_{n +1 - i} - x_i)$。于是让 $x_{n + 1 - i}$ 尽量小,$x_i$ 尽量大。将 $l$ 降序排序,将 $r$ 升序排序即可。(主播不想写了,看不懂就去看原题题解吧。) - C - 前缀与后缀 ([[洛谷 P9180] [COCI 2022/2023 #5] Slastičarnica](https://www.luogu.com.cn/problem/P9180)) [To do] - D - 贪吃蛇 ([[洛谷 P7078] [CSP-S2020] 贪吃蛇](https://www.luogu.com.cn/problem/P7078)) [To do] ### 2025.5.24 竟然草过去了 今日歌曲:You're on Your Own, Kid 今天叕考试。 - A - 红魔乡 ([[TopCoder 15693] Fixed Point Reversals](https://vjudge.net/problem/TopCoder-15693)) 显然好做。把翻转区间看成交换元素即可,唯一的限制是当交换的两个元素在 $pos$ 的两侧时,这两个元素需要关于 $pos$ 对称。 - B - 妖妖梦 ([[洛谷 P4576] [CQOI2013] 棋盘游戏](https://www.luogu.com.cn/problem/P4576)) 当且仅当黑棋和白棋出生在一起时,白棋能赢,否则赢家一定是黑棋。那么黑棋就尽量快速解决战斗,白棋就尽量多拖延,所以白棋转移状态时取最大值,黑棋选择状态时取最小值即可。 - C - 永夜抄 ([[TopCoder 10945] Rectangular Island](https://vjudge.net/problem/TopCoder-10945)) ``long double`` 还是太玄学了,**竟然草过去了**。发现左右移动和上下移动其实是相对独立的,所以单独处理即可。设 $row_i$ 表示在左右方向上移动了 $i$ 步,还在格子里的概率,$col_i$ 同理,它们是可以 $O(ns)$ 处理出来的。接下来枚举 $i$ 表示左右方向上移动的次数,那么此时的贡献应该是 $row_i \cdot col_{s - i} \cdot {s \choose i} \cdot \frac{1}{2^s}$。$s \choose i$ 显然容易维护,可是发现 $\frac{1}{2^s}$ 这东西容易炸掉,又发现在计算 $row_i$ 和 $col_{s - i}$ 时一共恰好迭代了 $s$ 次,所以在计算 $row$ 和 $col$ 时每迭代一次时乘上 $\frac{1}{2}$ 即可。 - D - 花映冢 题目:给定一个图,点数和边数都是 $10^5$ 级别的,可能有环、自环和重边,求是否存在一条从 $1$ 出发的路径可以经过所有点至少一次。(可以重复经过边或点)。 题解:显然先把自环和重边判了,接下来 Tarjan 缩点,再拓扑排序即可。 ### 2025.5.26 今天补题。见 5.22 与 5.24。 ### 2025.5.29 今日歌曲:Cruel Summer 今天继续补题。见 5.22。 ## 2025.6 ### 2025.6.2 问我怎么挂的 今天做题。 - [[洛谷 P2833] 等式](https://www.luogu.com.cn/problem/P2833) & [[SGU 106] The equation](https://codeforces.com/problemsets/acmsguru/problem/99999/106) 板子题啊,可是改了好久。主要死在向下、向上取整时没用 ``double``(因为有负数)。 - [[SPOJ NWERC11A] Binomial coefficients](https://www.spoj.com/problems/NWERC11A/) 这道题自己想到了枚举 $k$,二分 $n$,也想到了会爆 ``long long``,可是没想到枚举。 对于 $k \in [1, 6]$,进行二分;对于 $k \in [7, 30]$,枚举即可。 做的时候因为各种小问题挂了 $+\infty$ 发。 - [[洛谷 P2421] [NOI2002] 荒岛野人](https://www.luogu.com.cn/problem/P2421) 挺简单的呀。**问我怎么挂的**,其实是把 $y$ 写成 $b$ 了。还有另外一些小错。(比如步长写错了,还有负数导致的一些奇怪的问题。) 枚举 $m$ 与每一对人,解 $c_i + p_ik \equiv c_j + p_jk\ (\mathrm{mod}\ m)$ 即可。 - [[SGU 107] 987654321 problem](https://codeforces.com/problemsets/acmsguru/problem/99999/107) 没想到是打表题。打表发现满足要求的九位数有 $8$ 个,十位数自然就有 $72$ 个。(原有基础上在开头加一个数。)十位数以上,每多一位,答案自然就 $\times 10$。九位数以下答案为 $0$。 ### 2025.6.3 - [[SGU 126] Boxes](https://codeforces.com/problemsets/acmsguru/problem/99999/126) 神秘结论题。设 $n = a + b$。模拟一个倒推的过程,容易发现,当且仅当 $a, b = \frac{i}{2^m} n$ 时有解,其中 $i$ 是奇数,$m$ 是整数。若有解,模拟即可。 ### 2025.6.27 也是莫名其妙断更了一个月。 也是终于把别样的 whk 草过去了。 今天补日祭。 **欧拉函数、欧拉定理与线性筛专题** - 欧拉函数 $\varphi(n) = \sum_{i = 1}^n [\gcd(i, n) = 1]

利用以上结论即可完成:

2025.6.30

今日歌曲:Down Bad

昨天终于也是稳 1= 了。

这高中语文老师还是非常正常,但是这高中英语老师是比我还抽象。

今天补题。

2025.7

2025.7.1 好的标题

为什么你不写标题了呀?——@_O_vO

因为没想到好的标题。——@Getaway_Car

另外,注意到,我一月到六月的日祭数量如下:

月份 数量 有标题数量
\text{Jan.} 10 10
\text{Feb.} 12 12
\text{Mar.} 11 8
\text{Apr.} 7 7
\text{May.} 6 4
\text{Jun.} 4 1

我们的日祭正在蒸蒸日下!

2025.7.2

2025.7.3

2025.7.4

2025.7.6 蒸蒸日上

这已经是七月的第 5 篇日祭了,我们的日祭正在蒸蒸日上

2025.7.7

今天 VP Codeforces Round 1036, Div. 1 + Div. 2。

2025.7.8

模拟赛挂了 200\ pts,不然 310\ pts

第四题不会,所以也没什么题需要改。

2025.7.9

2025.7.10

2025.7.12

线段树合并要把我的左脑和右脑合一起了。

这篇日祭是线段树合并学习笔记,未来会有补充。

线段树合并顾名思义,就是把两棵线段树的信息按照特定的规则合并起来,一般与动态开点配合使用。

线段树合并常用于优化 DP,尤其是树形 DP(与 DAG 上的 DP),用来优化 DP 转移。(或者是一些需要在树 / DAG 上进行信息转移的东西。)

比如一个树形 DP 的转移方程如下:

dp_{u, i} \mathop{\leftarrow}_{v \in son(u)} dp_{v, ?}

我们需要将儿子的信息转移到父亲上,而每个节点存储的又是一个数组,常规的做法是一一合并,转移的时间复杂度为 O(n^2)

而对于一些转移方程,我们会发现合并信息的操作可以用线段树合并来优化。于是我们就将转移的时间复杂度优化为了 O(\log n)(线段树合并的时间复杂度)。

具体的,假设现有 n 棵线段树,每颗线段树维护的是 dp_i,那么对于 u,转移操作就是将 \forall v \in son(u), dp_v 合并到 dp_u 上。

可这时我们会发现,开 n 棵线段树空间显然不够,又发现在 DP 过程中其实有很多空节点(dp_{u, i} = 0),这些空节点是无用的。所以自然地会想到动态开点。

于是你就写出了线段树合并。

2025.7.13

2025.7.14

2025.7.15

2025.7.16

踩一脚 2025.1.17,现在比那时候还是有了一些进步。(现在很难想象之前有段时间天天都只考几十分,接近垫底,但是竟然没觉得什么。)

怎么说呢,教练和家长也都给我聊了好多次了,也是该到努力的时候了。我之前确实学习就没有真正用过全力,所以今天教练说我潜力很足,我也这么认为。只是说面临的困难也挺多的,比如我心理上的一些问题。我无法解决,所以只有尝试不想那些事情,尝试逃避问题。

今天上午考试,一道不会。下午应该是因为天气比较热,所以人有些浮躁,状态不是特别好,效率很低,听课也没怎么听进去,一天只做了一道题,也是成为了 HJJOI 集训期间的前缀最小值。

2025.7.17

这两天状态不好,所以 7.17 和 7.18 都没做什么题,日祭也是 7.19 才补的。

2025.7.18

2025.7.21

2025.8

这个月的日祭直接写一起了,基本都在补题。

注意到 7 月份后来状态不好。

Codeforces Round 1044 (Div. 2)

Link

Codeforces Round 1045 (Div. 2)

Link

Codeforces Round 1046 (Div. 1, Div. 2)

Link

2025.9

:::info[鲜花 (2025.9.1)]

注意到我停课了。

另外注意到我今天上午做了三道题,下午也许是在尝试改上一场 CF 的 Div. 1 E,顺便学习了一下反射容斥。学了之后发现改不出来,于是放弃了,并开始补日祭。总之就是下午一道题都没做?啊?什么效率?但是我不是挺认真的吗?啊?

:::

MX NOIP 3

Link

多校杂题选讲 20250905

Link

MX NOIP 4

Link

炼屎计划。

多校联考 20250906

Link

:::info[鲜花 (2025.9.7)]

虽然前几天看着还有那么多日祭没写,但其实一写起来还是挺快的。(这句话好人机,好唐,但是不管了。)

另外把一个月的日祭写在一起不就不叫日祭了么,应该叫月祭(?)。

:::

Atcoder Regular Contest 205 (Div. 2)

Link

Atcoder Beginner Contest 422

Link

Codeforces Round 1047 (Div. 3)

Link

多校杂题选讲 20250912

Link

Codeforces Round 1048 (Div. 2)

Link

第一次 Div. 2 打进第一页,虽然是 VP,而且这场 unrated。

MX NOIP 5

Link

这场是我考成屎了,甚至还垫底了。

Codeforces Round 1049 (Div. 2)

Link

MX NOIP 6

Link

多校联考 20250915

Link

明明就是没什么辨识度好不好,考了个 CW rk 2 还被表扬了。

Atcoder Beginner Contest 423

Link

质量场。

Edu Codeforces Round 182 (Rated for Div. 2)

Link

被降智了呜呜呜。/dk /dk /dk

MX NOIP 7

Link

Codeforces Round 1051 (Div. 2)

Link

难绷主要难绷在我每次在晚上打 CF 都要慌,而太慌了导致 D 没切出来,放弃 D 去看 E 的时候也许 20min 就秒了?具体时长记不到了。

:::info[鲜花 (2025.9.18)]

前几天还有十几个 To-Do 现在居然补完了。

虽然动用了一些特殊手段。(好唐)

虽然今天晚一点又新增了两个 To-Do。

:::

MX NOIP 8

Link

Atcoder Beginner Contest 424

Link

Codeforces Global Round 29 (Div. 1 + Div. 2)

Link

Codeforces Round 1052 (Div. 2)

Link

多校杂题选讲 20250926

Link

Codeforces Round 1053 (Div. 2)

Link

Atcoder Beginner Contest 425

Link

2025.10

Codeforces Round 1055 (Div. 1 + Div. 2)

Link

我好菜。

多校联考 20251007

Link

多校联考 20251008

Link

多校杂题选讲 20251010

Link

后面的不想写了。

多校联考 20251011

Link

美好的一天从饭堂开始。

Codeforces Round 1058 (Div. 1, Div. 2)

Link

Div. 2 Rank 8,紫名祭。

只能说是前一天晚上睡太好了,这天晚上状态好。要是我每次晚上状态都这么好 2200 也不是不可能。

多校联考 20251014

Link

除了之前没有区分度的那场之外考得最好的一场。

并且获得了 1.25 瓶冰红茶。

只能说还在稳定开挂吧,之前 \frac{90}{1400} 的运气还没用完。

:::info[鲜花 (2025.10.14)]

今晚有点颓,但是不管了。

想了想现在的自己和之前相比有些什么进步,写的一百多 KB 的日祭(加上题解)除了即时的总结,还有没有为现在的我留下经验教训。

也许是有的吧,虽然可能自己感觉不明显。不过一个很明显的进步是,之前我总是一步一步跳着想,导致(当天没写完后来忘了)。

:::

多校联考 20251015

Link

多校联考 20251021

Link

BINYU Zi_Gao Rong7 模拟赛,内部提前到了 20251017 考。

A 是唐,C 的 99 分只用发现 \gcd(f_i, f_j) = f_{\gcd(i, j)}f_i 表示斐波那契数列的第 i 项),其它不会。

多校杂题选讲 20251017

Link

不想写。

多校联考 20251018

Link

紫紫黑黑 NOIP 模拟赛。

不想写。

并非多校联考 20251021

Link

运动会,没打。

多校联考 20251022

Link

多校联考 20251025

Link

并非多校联考 20251027

可是牢祝依然算了这场的成绩。

Link

多校联考 20251028

Link

多校联考 20251029

Link

CSP-S 2020 并非 VP

CSP-S 2021 并非 VP

CSP-S 2022 并非 VP

CSP-S 2023 并非 VP

CSP-S 2024 并非 VP

2025.11

CSP-S 2025

多校联考 20251104

Link

多校联考 20251105

Link

这场是啥啊。

多校联考 20251108

Link

下分场。

多校联考 20251111

Link

上分场。

多校联考 20251112

Link

原神 Round. 1

多校联考 20251113

Link

原神 Round. 2

多校联考 20251118

Link

原神 Round. 3

多校联考 20251119

Link

多校联考 20251121

Link

多校联考 20251122

Link

多校联考 20251124

Link

多校联考 20251125

Link

A 原,其他不会。

多校联考 20251127

Link

NOIP 2025

2025.12

最新内容见 此处。