2023.8-2023.9 水题记录
几乎全是 CF 和 AT /oh
1. CF1856D More Wrong
这场 CF 场上只写出来 ABD (主要卡 B 的证明上了), 什么水平?
90% 交互 = binary search (暴论)
2. CF1851G Vlad and the Mountains
是我没见过的操作. 学到了.
3. CF1856C To Become Max
考试的时候没看. 简单二分.
4. CF1270G Subset with Zero Sum
简单题, 感觉条件提示的很明显啊.
5. P9533 [YsOI2023] 区间翻转区间异或和
简单小证明. 粉兔在 CF 讨论里面说这题被 ChatGPT 做出来了 /oh
6. AT_arc120_c [ARC120C] Swaps 2
什么 MO 操作. 你需要知道邻项交换次数=逆序对数.
7. CF1034A Enlarge GCD
简单数学.
8. P9323 [EGOI2022] Toy Design / 玩具设计
90% 交互 = binary search (反复强调)
9. AT_abc312_f [ABC312F] Cans and Openers
枚举第二种就做完了, 然后调了一年.
10. AT_agc061_b [AGC061B] Summation By Construction
简单构造, 但是创死了一车人, 怎么回事呢?
本人题解
11. CF1144G Two Merged Sequences
有趣小结论. 要我上的话直接保证有解然后卡 \(O(1)\) 空间 /oh
12. AT_abc191_f [ABC191F] GCD or MIN
简单数学.
13. CF920E Connected Components?
取度数最大的点就完事了.
为什么翻译不说排序输出啊?
14. CF1458C Latin Square
关键在于整体地看 \((i,j,a_{i,j})\) 这个东西, 操作就是某一维增量和交换维度, 可以 \(O(1)\) 完成.
15. CF1858E2 Rollbacks (Hard Version)
场上写的可持久化线段树, 喜提 MLE /oh
数颜色通常可以记一下每种颜色第一次出现的位置, 这样减操作直接减长度, 查询直接前缀和. 为了方便维护可以对每个颜色开个 set 记录位置.
末尾加的时候注意一点细节, 别直接把要加位置的给覆盖掉了, 要存起来方便回滚.
回滚操作用个 stack 存一下就行了.
16. P6960 [NEERC2017] Interactive Sort
这题很没脑子啊, 保证随机, 然后喜闻乐见地 binary search.
17. AT_arc122_e [ARC122E] Increasing LCMs
有趣构造.
大概的想法是, 考虑一个数能放在最后的充要条件. 然后就和这个数没关系了.
根据那个条件可以证明能放在最后的数不会减少.
18. AT_agc003_e [AGC003E] Sequential operations on Sequence
好题不难.
首先有意义的操作一定单增. 每个操作可以拆成循环和余数两部分, 最后发现贡献形状类似于一棵树, 从上往下算贡献即可.
不过不需要存树. 余数的部分可以直接二分到对应位置, 这样处理是 \(\log w\) 级别的.
最后整个差分, 做完了!
19. CF1854A2 Dual (Hard Version)
这场太困睡着了, 没打.
容易想到把符号全整成一样的, 然后前缀/后缀和, 赢!
简单的想法是用绝对值最大的做, 但是次数太多. 另一种想法是, 先把一个数倍增到足够大再给符号相反的加上. 平衡两种操作恰能卡满.
20. CF1849E Max to the Right of Min
简单题, 为什么我场上没做出来呢?
这种东西很明显能做的操作, 一个是单调栈, 一个是扫描线. 然后就没什么难的了.
21. AT_agc063_b [AGC063B] Insert 1, 2, 3, ...
知道怎么判断可生成但是没想出来, 什么水平?
22. AT_agc063_c [AGC063C] Add Mod Operations
被 Ad-hoc 爆杀.
23. CF1859F Teleportation in Byteland
分讨题, 没做出来.
24. CF1670E Hemose on the Tree
25. CF1827E Bus Routes
需要注意到的关键性质是, 我们只需要判断叶子结点是否两两可达.
对每个叶子结点求出来它能通过一条链到达的深度最小的点.
这时求出来的点一定都在一条直链上, 否则显然不能通过两条路径到达.
26. CF1856E2 PermuTree (hard version)
喜报: 校内模拟考这题, ans+=i*(sum-i);
只对 ans 开 long long, 后面没开, 88->56.
容易转化成对每个结点, 将子树的大小分成差尽量小的两部分, 直接 01 背包 + bitset 就获得了 \(O(\dfrac{n^2}{w})\) 的优秀做法(?
注意到不同的数只有 \(O(\sqrt{n})\) 种, 二进制拆分后就有单次 \(O(n\sqrt{n}\log n)\), 实际上因为一些神秘原因并没有那个 log.
但是对整棵树这样做还是会寄. 发现重子树如果大于整体一半那么直接把重子树单独分出来即可.
否则所有子树大小都不超过原来的一半, 此时递归时间复杂度正确. 因为一些神秘原因还是没有 log.
别人写的时间复杂度证明
27. AT_agc018_f [AGC018F] Two Trees
经典好题.
28. AT_agc064_b [AGC064B] Red and Blue Spanning Tree
没脑子题, 但是我赛时没做出来!
用边的方向表示归属关系. 先把双向边加完了, 然后每次加连向合法连通块的边.
29. CF1209F Koala and Notebook
30. CF1854B Earn or Unlock
31. CF319E Ping-Pong
线段树维护线段/oh
难点在于并查集连边.
32. P5283 [十二省联考 2019] 异或粽子
把顺序限制给扬了, 然后答案取在 \(2k\). 对角线全是 \(0\), 没影响.
这是 P1631 序列合并, 多一个在 01-Trie 上找异或第 \(k\) 大.
33. AT_agc062_c [AGC062C] Mex of Subset Sum
34. CF888G Xor-MST
35. CF1849F XOR Partition
36. CF1439B Graph Subset Problem
37. CF1473E Minimum Path
38. CF1583F Defender of Childhood Dreams
39. AT_abc302_h [ABC302Ex] Ball Collector
链上的是 ARC111B. 二元关系考虑连边, 并查集随便维护.
上树直接来个可撤销就完事了.
40. CF903G Yet Another Maxflow Problem
这个题应该是最近掉紫的.
最大流没法做, 转成最小割.
41. CF516D Drazil and Morning Exercise
说句闲话: 40 和 41 都是远古模拟赛放 T4 搞心态的. 不过也没有那么不可做!