2026.7 复健记录

2026.07.10

被拉到了 fdu 新生群里,似乎要准备 acm 选拔+复健了,正式训练应该是 17 号开始。

打了 EDU192。A 很唐。B 也是,但是头晕晕,写了快十分钟。C 也不难,但是边界没处理好调试半天。唉唉,本就不多的代码能力确实也下降严重啊。

DE 明天再说吧。

2026.07.11

今天太颓废了,上午被拉去拜访亲戚,下午一直在凹 zmd。几乎没做什么题啊,唉唉。

D 做半天没啥思路,无奈看题解才发现自己是傻逼。如此水平,如何 acm?E 胡了个思路之后有点写不动,遂看题解,发现大体思路没问题,但是个别情况做复杂了。一句话记录一下做法吧。

CF2242D:首先无解显然当且仅当两个数组所有数之和在 mod 10 意义下不同。考虑对两个数组求前缀和,则答案即为两个前缀和在 mod 10 意义下的 LCS。

CF2242E:考虑小分讨:令 \(highbit(r)=2^k\)。若 \(l\geq 2^k\),则两数必在第 k 位都取 1,可转化为 \([l-2^k,r-2^k]\);若 \(l\leq 2^{k-1}\),则显然取 \(2^{k-1},2^k\)最优;否则可证明取 \(l,2^k\) 最优。

2026.07.12

今天也比较颓废,但比起前一天还是好了一点。CF 做了两道题,难度都不大,只是在细节处理上均存在一些问题,只能说要多锻炼熟能生巧了。

被 emsger 叫去打 ARC224,对自己实力有比较清晰的认知遂果断 Unrated。万万没想到这次 ARC 似乎难度偏简单,AB 都很送,但我依旧秒出思路后调半天。C 也挺唐的,但是不知道为什么最开始否决了想出的做法。D完全没啥思路,于是打摆。但是看 emsger 和 Eray 最后都切了 5 道还掉分了啊,顿感自卑。赛后看题解,只看了一句话就发现 D 其实也是傻逼题,只是我更傻逼。E 明天再看吧,唉唉😔。

ARC224D:考虑反面:记 \(S_x\) 表示包含 x 的卡片的集合,如果 (x,y) 不合法,则该条件等价于 \(S_x=S_y\),那么原题就等价于安排 k 个互不相同的 S 使得 \(\sum_x (|S_x|\times \text{Len}(x))\) 最小,这就是简单题了。

2026.07.13

今天是和同学去三亚度假的第一天,下午出发,所以上午一直在收拾东西,下午在车上和飞机上度过,晚上入住酒店,一天没练习。

2026.07.14

今天是三亚度假第二天,上午中午在海边玩,下午在酒店游泳池学习游泳,一天也没练习。

深夜睡不着,想到 acm 选拔在即,自己却如此之菜的事实,焦虑地渴望变革,于是刷到了 b 站上 cmd 的经验之谈,决定在接下来一段时间实践一下。

2026.07.15

今天是三亚度假第三天,上午去海上玩了不少项目,中午回酒店看题解补了 ARC224E。

ARC224E:注意到 A/AB/ABC 拥有公共前缀,考虑从后往前扫,使用栈维护当前状态,值表示某个可能的字母组合删去后可以使答案减少的长度。具体地,遇到 C 加一个 0;遇到 B 如果栈顶是 0 则弹 0 加 3,否则加 2;遇到 A 如果栈顶有非零值则弹出并减去对应长度,否则答案减 1。

下午决定小刷一点题,于是选了 ARC223。总体上感觉难度不算大,但有点人类智慧,小巧思较多,自己也有点卡题。

ARC223A:对于 i,当 \(W\ge w_i\) 时,若不选它则能选完 1 到 i-1 所有,选它则可得到 \(v_i\) 价值,从后向前扫一遍,前缀和后 O(n)。

ARC223B:当一段内有 \(\forall (a_i+a_j)\equiv 0 \pmod k\) 时,可以任意安排位置;当一段内只存在 \(a_i\equiv x\pmod k\)\(a_i\equiv y\pmod k\)\(x+y\equiv 0 \pmod k\) 时则最终位置满足两类数内部顺序不变,乘法原理每一个极长段方案乘积即为答案。

ARC223C:\(\exists i<j,a_i=a_j\) 时,答案为 0。否则 \(a_i\bmod n\) 为 0 到 n-1 的一个排列,那么答案就是正负 \(\prod_{i<j}(j-i)\bmod n\)。正负取决于 \(a_i\) 排序后 \(a_i\bmod n\) 的逆序对数的奇偶性。

2026.07.16

三亚度假第四天。上午大东海,但是海域未开。下午西岛,傍晚椰梦长廊散步拍照,没看到日落。夜市闲逛后回酒店。

出租车上试图实践 cmd 学习法,随机开了几道 kenkoooo 上的较简单的题,大部分都不太会,有点挫败。

2026.07.17

三亚度假第五天。上午酒店休息,下午大东海沙滩漫步+鹿回头游玩,晚上酒店激情斗地主,mao 背景的扑克牌还是太可怕了。

上午跟紧 Eray 的步伐 vp 了一场 div2,状态不错速切了 ABC,D 细节没考虑清楚导致用时略多,E 只能说第一步对了。

CF2246D:若 \(\exists a_i\) 为奇数,则 Bob 策略为不断将其放到第二个,可得到最大次数 \(\sum (\text{popcount}(a_i)+\text{bitlength}(a_i)-1)\)。记变化后数组为 \(b_i\),枚举 Alice 初始操作后的 \(t=\min(\text{lowbit}(b_i))\),则 t 次后即出现奇数。注意变化后 \(b_i\) 可能比其可能最小值更大以得到更小的最终答案,需要枚举可能的 \(b_i\) 取答案最小值。

CF2246E:因为知道 v 某一位的取值后即可确定答案,且确定性做法行不通,考虑随机化。取 x=1。若 \(o(v,x)>1\),则已经确定 v 的一位;若 \(o(v,x)=0\),则 v 为偶数。

\(o(v,x)=1\),若操作为或,则 v 为 0/1,否则 v 为奇数。考虑 \(m_0=0,m_1\) 为随机奇数。记回答为 t。

若 t=0,则除非 \(b=1,m_1=v\),否则 b=0,v=0;

\(t=m_1\),则除非 \(b=0,m_1=v\),否则 b=1,v=0;

若 t 为非零偶数,则 b=1。

若 t 为非 \(m_1\) 奇数,则 b=0。

错误概率 \(P=2^{-29}\)

2026.07.18

三亚度假最后一天。上午起床后急急忙忙收拾东西准备赶飞机。不得不说川航伙食还是可以,狂炫菠萝汁。飞机上看完了更衣人偶第一季,舒服。可惜带的书还是一页未看,羞也不羞?

下午到家。中途一顿折腾有点劳累啊,下午晚上都在颓废,只看了点集训要求。

2026.07.19

上午试图复健,找了几个板子重学,感觉还是有点云里雾里的,慢慢来吧。tarjan 好神奇啊。manacher 好神奇啊。KMP 好神奇啊。

下午小睡一会,接着发现 lhz 偷偷卷 CF,尝试写,发现 C 挂了 D2 没写动。😞这种成绩,使人汗颜!

晚上 ARC。手感还行,但是还是艰难啊,上小分。

ARC225A:相信 A 不会放巨大复杂题,枚举发现 {1,2,3,4} 映射到 {3,1,4,2} 满足条件。

ARC225B:先按连续 1 分段。考虑仅一段的情况,手模发现只有长为 2 是后手必胜。考虑推广,归纳得段长全为 2 时后手模仿先手可以必胜;而其他情况下长为 1 的段一次可取完无影响,长大于 2 的段可以划分为若干 2 段和 1 段,则先手必胜。

ARC225C:先求最小生成树 t1 和最大生成树 t2,记权值为 v1 和 v2。有解时 \(v_1\le k\le v_2\) 的必要性显然,下证充分性:先连上 t2 中使用的 n-1-v2 条 0 边,接着尽量连 1 边连到 k 条,最后连 0 边即可。

ARC225D:比较牛啊,差点不会。结论:\(ans=\frac{1}{2}\sum_{i=1}^n\lvert a_i-i\rvert\)

证明为下界:令 \(T=\sum_{i=1}^n\lvert a_i-i\rvert\),则操作 (i,j) 对 T 的变化量为 0,-2(j-i) 或 2(j-i)。(如 \(a_i<i<j<a_j\) 时 T 变化量为 \(2(j-i)\)

证明可取得:记 \(a_i\neq i\) 的位置为 \(i_1,i_2\dots i_k\),则必存在 \(a_{i_s}>i_s\)\(a_{i_{s+1}}<i_{s+1}\),对其操作即可。

2026.07.20

练习赛 Day 1。

上午略微有点打摆,想认真学习,但是也没做多少东西,看了下昨晚 ARC E 的题解。

ARC225E:感觉去掉 D 会更难想。结论:\(ans=F(a)=(\sum_{i=1}^n\lvert a_i-i\rvert)-\text{inv}(a)\),其中 inv(a) 为 a 的逆序对数。

引理:去掉 \(a_i=i\) 的位置将 a' 变为 n-1 的排列后 F(a)=F(a')。这个显然。

证明为下界:令 \(F(a)=(\sum_{i=1}^n\lvert a_i-i\rvert)-\text{inv}(a)\),则手模发现操作 (i,j) 使 F(a) 产生的变化量 \(\ge -1\)

证明可取得:记 \(a_i\neq i\) 的位置为 \(i_1,i_2\dots i_k\),则必存在 \(a_{i_s}>i_s\)\(a_{i_{s+1}}<i_{s+1}\),由引理删去中间点后易知:对其操作可使 F(a) 减少 1。

快中午想起之前 lhz 打的那场 CF 的 D2 我会了还没写,尝试 rush,结果写法太大芬没冲出来,学习题解后五分钟解决,哎。😔

CF2247D1:发现最优策略是一次只改变一位,则答案为一定为 0 或 \(2^k\) 形式,此时后者可以让 \(\forall t\ge 0,[t2^{k+1},(t+1)2^{k+1})\) 内部排序,类似归并可以做到 O(n)。

CF2247D2:带修之后,先在末尾补 INF 使 \(n=2^k\),考虑线段树维护答案:节点维护 max/min/ans,当左儿子 max \(\le\) 右儿子 min 时 ans 取左右儿子 ans 较大值,否则说明需要对该区间直接排序,ans 取半区间长。

听说上海特大暴雨把 fdu 和同济等学校都淹了?好似喵。

下午打练习赛,感觉自己蠢得可以,硬吃巨大罚时,而且平衡树也不太会了,要赶紧复健啊。总结在飞书。

2026.07.21

下午练习赛 Day 2。打的是杭电多校。

2026.07.22

2026.07.23

上午不知道在干什么,颓废度日。

下午练习赛 Day 3。依旧团体赛,依旧被带飞。把飞书上的总结搬过来:

感觉完全被队友带飞了啊。开场发现 1011 是签到,但是想简单了以为是贪心类似物,胡了半天不太会做。接着看 1010,一开始没想到全 0 段段长固定时随操作次数增大,增加一次操作的收益单调不增,所以也不太会。这个时候队友已经杀穿 1008 并且会 1010 了,于是让机。看了 1004 发现是模拟,于是和队友交替写题,他们想 1007 和 1011 时我就写 1004,写完了发现 wa 了,静态调错无果对拍 1h 没错,最后发现答案要开 long long😅。后面试图做 1002,1003 但没思路,然后和队友一起优化 1006,但是仍未通过。

晚上过 zmd 1.4,又颓废一天。要努力啊。

2026.07.24

上午试图复习一点东西。发现昨天多校 1007 要莫反,于是复习莫反。顺着这个势头又复习了 CDQ,左偏树,整体二分和整除分块。唉唉,难的都不太会。

下午练习赛 Day 4。依旧团体赛,依旧被带飞。打的是牛客多校 3,看了一下感觉纯凭个人能力赛时最多 5 道,思维能力还是欠佳。今晚加训 atc/cf。飞书上的总结在下面:

又被队友带飞了。
开场看 A 会了,但是队友告知 K 是签到。自告奋勇写 K,看错题 + 不开 long long 怒吃两罚,之后真得 define int long long 了。做完想做 A 但是队友也会了就让了,去看 I 但是没思路,这个时候队友逐渐把 AF 都过了。转而看 L 发现也是签到,自告奋勇写 L 结果 m 打成 n 吃一发 RE。后面几乎 0 作用,全程边缘 OB,只能看队友杀完。每个看起来比较可做的都看了一遍但不太会,会了 J 但是也被队友杀了。

晚上开了 CF2245。

CF2245D1/D2:引理:有解等价于有绝对值互不相同的解,则不小于可以变为大于,证法见官方题解。对于第一类限制,注意到当不存在形为 \(a_i+a_j>0\) 的限制时可以令 \(a_i\) 为极小值,同时删去 \(a_i\),这过程类似 topsort。第二类限制同理。这样构造不出解则说明原图存在一个点同时存在于两种环,这显然是无解的。

2026.07.25

下午补了 CF2247 没做完的题。

CF2247E:非常牛啊,考虑构造一条链,这个做法比题解简单,但是我不太会严格证明必要性。首先注意到 k 一定为偶数,因为你需要回到 1,每条边经过次数都是偶数。然后显然最小答案为 2(n-1),这也是 \(1,2,3\ldots n\) 首尾相连时的 k。发现反转 [2,n-1] 中的一个长为 t 的子串可以使答案增加 2(t-1)。如果 k>2(n-2-1) 怎么办?递归处理即可。复杂度 O(n)。

2026.07.26

上午随机写 arc/abc。

ABC467F:可通过调整法证明按 \(b_i\) 从大到小安排最优。线段树上的良好维护方法能使实现更具效率。

下午好像也没干啥。

2026.07.27

个人赛。感觉选的题非常神秘,写了 2h 左右开始罚坐。结束后想补题,结果发现怎么要 ktt/插头 dp 啊,两眼一黑。

2026.07.28

团体赛。hdu 多校 Day3,队友太强了。

赛时让了几道题给队友,思维速度还是略微慢了一点。还好还是贡献了一道瞪眼构造和一道简单 flow,没有完全躺平。队友会 runs 把 1001 爆切了还是太可怕了。赛后严肃学习了 1002,感觉有点东西。

2026.07.29

上午下午感觉挺躺平的,勉强开了几道 arc,发现都不太会,自闭。

ARC216B:

一种做法是转化为 \(\sum_k[\text{mex}(a[l,r])\ge k]\),记 a[l,r] 中 -1 个数为 \(c_{l,r}\),[0,i-1] 中没在 a 中出现过的数个数为 \(f_i\),则 a[l,r] 的答案就是 \(\sum_i \dbinom{c_{l,r}}{f_i}(f_i)!(c_{1,n}-f_i)!\),且 [0,i-1] 从未在 [l,r] 之外的地方出现过。记对于区间 [l,r] 这样的 i 的最大值为 \(t_{l,r}\),注意到 \(f_i\)\(c_{1,n}-f_i\) 与 [l,r] 无关,可以 O(n^2) 预处理 O(1) 查询。

还有一个牛牛想法是排列的 mex 可以转化为补集的 min。做法上最后是差不多的。

ARC212C:

被 product tricks 吓晕,给组合意义跪了。

\(S=\sum_i \min(a_i,b_i)\),则剩下的等价于把 n-2S 个球放进 m 个有标号盒子里,记每个盒子中球数为 \(c_i\),每种方案价值为 \(\prod_i c_i\)。由于每个盒子可蓝可红,需要系数 2^m。

关键在于 \(\sum_c(\prod_i c_i)\) 怎么求和:记 \(\sum_i c_i=N\),则 c 可以不重不漏映射到共 N+m-1 个球的合法排列方案,其中 N-m 个是普通球;m-1 个是分界球,用来区分 m 个盒子;m 个是特殊球,用来辅助统计答案。合法方案需要相邻两个分界球中间恰好一个特殊球。注意到只需要在 N+m-1 个位置中选 m+m-1 个位置作为特殊球和分解球,其中 \(1,3,\ldots 2m-1\) 号球为分界球,剩下为特殊球即可。故方案数为 \(\binom{N+m-1}{2m-1}\)

剩下的部分是简单的。

ARC215D:

非常人类智慧。显然 a 合法当且仅当分成奇数下标的 \(a_{odd}\) 和偶数下标的 \(a_{even}\) 之后分别不减,但你发现它会让 s 算重。一个强强的想法是当 \(a_{1}\gets a_1+k\) 之后,若 s 不变,则 \(a_{even}\) 中每个数减小 k,\(a_{odd}\) 中每个数增加 k,于是可以将每个 s 映射到一个 \(a_1=0\)\(a_{n+1}=m\) 的 a 上。

2026.07.30

ARC208C:

猜测原命题有解当且仅当存在 (n xor c)=x 或 (n xor c)=n+x,严谨证明可见题解。最妙的是下一步:前者即 n=x xor c;后者有 \(n\oplus c=n+c-2(n\&c)=n+x\),则 c-x=2(n&c)。记 d=c-x,则有解需要 d 为偶数且 \(\frac{d}{2}\& c=\frac{d}{2}\),此时 \(n=\frac{d}{2}+2^{30}\) 即可(因为 n>0)。

abc467_e 分段函数

1002 B. Binary Choice

posted @ 2026-07-12 23:44  xx019  阅读(32)  评论(0)    收藏  举报