「Diary & Solution Set」September 2025 10年后の8月 また出会えるのを 信じて
2025.9.1
语文老师兼班主任说,她高中时候是理科班,语文全靠感觉结果高考炸成 100。语文课的时候真的没有点名让我回答问题!!!
开学之后真的好忙啊。
ln:你初三的时候在哪个班?
我:1 班。
ln:欸我不是带了半学期 1 班的吗怎么没见过你是不是学竞赛去了
我(偷笑):……
我都还记得到《我与地坛》是 ln 上的,我作文历史最高是 ln 改的。
9.2
开学典礼。莫名其妙念完了演讲稿。
立体几何好难,不是我喜欢的图形,我直接解析。
9.3
化学课 wyx 抽问硝酸盐的分解规律,为什么我的笔记上没有。Mg 及其以前分解为亚硝酸盐和氧气,Cu 及其以前分解为氧化物、二氧化氮和氧气,Ag 与 Hg 分解为单质、二氧化氮和氧气,本质上是氧化物二步分解为单质和氧气。
晚二有神秘英语考试,原来是跟高一一起考,考的是初三难度题目,以为 race 不能及物错了个完型没能 AK 非常不爽。为什么我们去年第一次跟高一考英语难度完全不一样,完型选项全都是生词(
今天实在是太充实了,充实到一抬头就 22:00 了。
9.4
文言文真好玩,运动学真好玩,硫与氮真好玩,立体几何一点都不好玩。
中午看到数竞上午考试题,发现最后一题组合是一个神秘构造,花了 15min 想出构造方案有 5pts,剩下的证明还有 45pts(
CF2135D2 From the Unknown (Hard Version)
这种东西不知道为什么我直接就想到塞一堆 \(B\) 进去,对于 \(W<B\) 的情况查 \(B\times B\) 个 \(1\)。对于 \(W\geq B\) 的情况,预处理对应的第一次询问答案,二分出对应区间然后随便乱做就可以了。
9.5
下午第一次大体锻,集合之后我直接自习。但是作业还是剩好多。
9.6
不神秘模拟赛。T1 T2 看出结论之后就好做,但是 T2 需要高精度,不知道为什么我的单次 100 次简单运算的超绝压位高精跑得飞快,也懒得优化了。T3 比较简单,树上背包板子。T4 想了很久还是不会,写 FWT 但是第一步点双转化就错了(考场上想成了边双)所以 32pts -> 12pts。赛后发现和暴力一个分很不爽。
赛后补题直接手撕矩阵求逆,没有逆的情况花了一点时间。
9.7
数学作业好难,两节晚自习都没做完。
9.9
今天化竞回来了。
下午被拉去拍了神秘教师节祝福视频。
9.10
晚上英语考试错了一个七选五、一个完型、一个语填、一个单词填空,很不爽。
9.11, 9.12
不知道在干什么。
9.13
又是神秘模拟赛环节。
开场先想 T2,过了 50min 才会 70pts。这时 tzy 和 xyt 在旁边差不多过 T1,然后我回去做发现是 10min 奇妙贪心。
然后一直想 T2 都不会,T3 懒得写暴力,最后 1h 给 T4 写了个维护 dp 差分数组的玄学算法,懒得离散化,反正是玄学算法。
赛后发现 T4 跑了 60pts,加个离散化就过了(((
区分度还是太差了,我打成这个样子都没被区分掉。
9.14 ~ 9.19
在军训。中间想出了一个 ds 一个图计数,而且都没有假掉,又可以组比赛了。
比较有趣的是 9.18 晚上提前回教室后不知道为什么特别想飙高音,结果异常轻松地上了 E5(然后被围殴了(结果第二天就不行了
被通知又要写演讲稿,这个周末又没了。数学作业还没写完呢(((
9.20
CSP-S1 2025。比去年简单太多了。1h 边做边检查 AK 了。由于剩的时间太多去检查差点改错了一个选择(((
9.21, 9.22
心态炸裂的两天。感觉换成半年前的我会直接趋势,但是半年前的我似乎也不可能碰上这么多烂活。
40min 定时作文写到 800 字发现偏题了。班主任批判了我们的综合基础。
好困好困。
9.23
今天是秋分哦。
下午有艺术课,认五线谱讲了两节课,凭借绝对音感和三年前的声乐经验杀穿了。
累似了。
9.24
星期三不妙日。整天在非常压抑的氛围中度过。英语定时由于没时间完型和语填爆丸了。语填没有时间分析句子结构导致爆了 3 个。作业根本写不完(((
9.25
上午回 cqbzhf 做神秘发言。这个座谈会把座位安排到第一排脖子真的会伤到(((
出来之后偶遇初一班主任(((
听 TQ 说因为我和 yb 那边的中考最高分体育都没满,这一届初三上强度了。我说为什么我们去年这个时候晚上还没开始加训。
逃掉了一上午的课,但是代价是又落了一大车任务没做。
听闻月末要跟着高二月考,但是隔壁班不用。
CSP-S1 查分,没挂,AK 了。
P13863 [SWERC 2020] Decoration
热身题目。
对于 \(x\in[0,N)\),有且仅有一个 \(y\in[0,N)\) 可以接在 \(x\) 后面。
连一条 \(x\rightarrow y\) 的有向边,整张图为内向基环树森林,一个合法的序列是一条长度为 \(K\) 的路径。
枚举每个点作为起点模拟即可,需要注意不能有相同的数,也就是点不能重复经过。
UOJ187 [UR #13] Ernd
接水果肯定首先要按时刻 \(b\) 从小到大的顺序,考虑 dp。令 \(dp_i\) 表示考虑前 \(i\) 个水果,接到第 \(i\) 个水果的最大分数。
不妨定义 \(i\) 可达 \(j\) 当且仅当 \(b_i\leq b_j\) 且 \(|a_i-a_j|\leq b_j-b_i\),就是说接了 \(i\) 之后下一个可以接 \(j\)。
转移的时候,对于 \(i\) 枚举 \(j\) 满足 \([j,i]\) 都接到,再枚举 \(k\) 满足 \((k,j)\) 都没接到(作为上一个连续段的末尾),有转移 \(dp_i\leftarrow dp_k+(i-j+1)^2\),要求 \(k\) 可达 \(j\),\(\forall p\in[j,i)\),\(p\) 可达 \(p+1\)。
那么将转移分为 \(k\) 到 \(j\) 与 \(j\) 到 \(i\) 两部分,先考察第一部分:
求 \(\max_k dp_k\),要求 \(|a_k-a_j|\leq b_j-b_k\)。经典地,拆开绝对值,等价于 \(a_j-a_k\leq b_j-b_k\) 与 \(a_k-a_j\leq b_j-b_k\) 同时满足,是二维偏序状物(由于右边 \(b_j-b_k\) 非负才可能成立,所以这个二维偏序要求了 \(b_j\geq b_k\))。按其中一维排序,拿个数据结构维护另一维最小值即可。
第二部分:
是一个形似 \(dp_i=\max_j f_j+(i-j+1)^2\) 的东西,要求可以连续接下 \([j,i]\)。由于可达的描述有传递性,把所有极长的可达链拿出来,就变成了序列上 \(dp\)。这是经典的斜率优化,由于 \(x,y,k\) 全部单调,可以用各种方法做到 \(O(n)\) 或者 \(O(n\log n)\)。
P12602 指鹿为马
下面字符串下标标号从 \(1\) 开始。
单串匹配求期望容易想到利用 KMP 自动机。定义 \(dp_i\) 表示抵达状态 \(i\) 的期望,有 \(dp_n=0\),要求 \(dp_1\)。
转移比较简单:\(dp_i=1+\sum_cdp_{\delta(i,c)}P_{s_i,c}+[\delta(i,c)=0]E_{s_i}\)。其中 \(s_i\) 表示第 \(i\) 个字符,\(P_{s_i,c}\) 表示 \(s_i\) 的下一个字符生成 \(c\) 的概率,\(E_{s_i}\) 表示从 \(s_i\) 开始生成到首字符(\(s_1\))的期望次数。这里的 \(E\) 可以直接高斯消元求出。
关于这里为什么有一个 \(E\),如果认为初状态是 \(0\) 当然不需要,但是初状态是 \(1\)(有一个初始字符),所以这里实际上是把 \(dp_0\) 直接丢掉没管。加上 \(dp_0\) 的状态的话需要考虑空字符后面接一个字符的概率是多少的问题,还不如这个 \(E\) 来得直接。
乍一看这个转移是有环的,但是增广矩阵看起来是比较特殊的稀疏矩阵,第 \(i\) 行除了常数,\(> i+1\) 的列全都是 \(0\)。
如果把含 \(dp_{i+1}\) 的项全部放在一边,另一边除了常数一定是 \(\sum k\times dp_{j},j\leq i\) 的形式(根据 KMP 自动机的定义,\(\delta(i,c) \leq i+1\))。
按照移项后的式子得到的是一个三角矩阵,相当于已经高斯消元好了,转移是 DAG,所以用 \(k_idp_1+b_i\) 表示出所有变元,最后 \(dp_1=-\dfrac{b_i}{k_i}\),答案需要再加上初始字符的 \(1\)。
时空复杂度 \(O(nm+m^3)\),其中 \(m\) 是字符集大小。
P13350 「ZYZ 2025」遗传
显性和隐性的问题只需要将患病情况取反,下面只讨论显性。
直接去求答案会受到祖先和儿子的双重限制,不好做。那么反过来直接强制钦定一个生物的基因型,然后求此时整体合法的概率(先不考虑时间复杂度的问题),再除以不加限制的整体合法的概率。
这里整体合法我们定义为:叶子结点的基因型按照基因频率确定,按照遗传规律生出子代满足题目所给患病情况的概率。
设 \(dp_{u,aa/Aa/AA}\) 表示考虑 \(u\) 子树内部,\(u\) 的基因型为 \(aa/Aa/AA\) 时整体合法的概率。转移理清细节还是比很多题好写的。
接下来考虑时间复杂度的问题,注意到每次只有从一个点到根的一条路径转移是不同的。由于数据随机生成,树高是 \(O(\log n)\),单次做 \(O(h)\) 就可以直接做到 \(O(n\log n)\)。
P12462 [Ynoi Easy Round 2018] 星野爱久爱海
先考虑暴力,对 \([l,r]\) 建出虚树,贪心地想肯定是选叶子,选非叶节点没有意义。令在点集 \(S\) 中选 \(k\) 个点的最优方案是 \(F(S,k)\):
由于 \(F(S,2)\) 就是直径,我们希望 \(F(S,k)\) 也有类似的性质,例如可快速合并两部分的 \(F\)。
下证 \(F(S,k-1)\subset F(S,k)\),也就是一个比较符合直觉和经验的贪心:每次我们选择贡献最大的叶子加入待选集合。
\(F(S,2)\) 就是直径,先证必须选直径端点。通过画图等手段可以比较清晰地发现,如果存在两个点 \(x,y\) 满足去掉 \(x,y\) 两个点之后不影响其他点虚树形态,由于 \(x,y\) 距离不大于直径,替换为直径是不劣的。
所以选直径端点一定是不劣的。
然后发现这个问题变成了确定两个点必须要选,再选 \(k-2\) 个点的最优方案。容易用调整法证明,每次都是选贡献最大的叶子。
所以暴力做就把一个直径端点作为根,做长链剖分之后选出前 \(k-1\) 大的链。
用数据结构优化看起来需要支持合并操作。
下证 \(F(S\cup T, k)\subseteq F(S,k)\cup F(T,k)\)。
首先 \(S\cup T\) 的直径端点在 \(S\) 和 \(T\) 的直径端点之间。接着 \(S\cup T\) 的前 \(k-1\) 大链一定在 \(S\) 与 \(T\) 的 \(2k-2\) 并之中,不然的话可以通过选择不在 \(F(S,k)\) 和 \(F(T,k)\) 中的那个点来增加 \(S\) 或者 \(T\) 的答案。
所以现在我们支持了 \(O(k)\) 或者 \(O(k\log k)\) 甚至 \(O(k\log n)\) 合并两个集合的答案。这个东西显然是满足交换律结合律可重复贡献之类的东西,所以拿个数据结构维护一下就可以了。
将序列按 \(k\) 分块,块内暴力,块间利用 ST 表快速维护合并,如果关于虚树的部分做线性,大概可以做到 \(O(n\log n+qk)\)。直接上线段树也是可以的,但是多一个 \(\log\)。
9.26
今天本来准备的论语课前演讲是“岁寒,然后知松柏之后凋也”,结果 zy 说这个初中讲过,我反驳,zy 说大家太熟了,我下来问了 10+ 人都说不知道(((于是只能下周重来了
9.29
恐怖下午模拟赛。打了(并非)大众分,T2 基环树由于想正解去了没时间(其实可以延时但是懒)。
9.30
国庆作业太多了。放假时长为其他班 \(\frac{3}{8}\),但英语作业为 \(\frac{3}{4}\)。
知道停课之后还要上语英天塌了。半期考试要跟高一高二考两场天塌了。
逆天 tzy 昨天模拟赛前 U 盘下的轻小说被 zy 看到,然后下午用的时候被全班看到。
晚上看到 这个。现在 OI 界的文学都这么卷的吗(看来我也要开始卷了

浙公网安备 33010602011771号