1.Q833. Cells Blocking
2.Q837. Giant Penguin
点分治,对于分治中心,最多 对点跨子树。对于起终点在不同子树的对的距离,可以枚举 个关键点作为中转。
3.Q850. Edit Distance Yet Again
表示 分别匹配到 和 。。 不降, 表示最大的 。
需要二分哈希跳过相同部分。。
4.Q856. Cactus
仙人掌可以直接找环,对于不同的环长有一个系数。
或者直接广义串并联方法。
5.Q857. Social Distancing
给每个点按深度从大到小重标号,一个互相可达的等价类的代表元要求字典序最小。
考虑一个点 能不能放,之前的点不会有影响。如果最后是 ,则 到 路径为空,只用调整邻域,即尽量把每个点都往子树扔一步。
每个点 次,次数不超过 。
6.Q862. Social Justice
好像随便做。
8.Q888. Travel around China
提前预处理 到 的最短路。
分治,已经可以保证路径只在分治范围内。处理出点到 的最短路,二维偏序算哪个是最小的。
9.Q962. Thanks to MikeMirzayanov
转化为全局 reverse,再对每个区间 reverse,最后调整奇偶性。
分治, 为 ,对 序列排序,缩连续段。可以形如操作 ,每次可以使 对减半。次数 。
10.Q964. Excluded Min
形如后缀加,求下标最大的 的位置。
直接莫队,要平衡一手 的修改和 的询问。直接按 分块,再按 分块,块内维护最大前缀和。修改 ,查询 。。
11.Q970. Best Subsequence
二分,先取出所有 的,然后对每个间隔考虑能不能多选一个。
整体二分。
从小到大扫值域,把贡献差分为,当 , 的时候有 的贡献。对于一个 ,所有有值的 不交。只把贡献放在 ,再额外减去跨过 的。
在外面对询问和修改按下标排序,单 log。
12.Q971. Binary Search Tree
19.Q1351. Koosaga’s Problem & 20.Q1355. Rhythm Game
Petrozavodsk Summer 2020. Day 6. Korean Contest。
27.Q1817. AND Permutation
递归做。
先处理 位为 。
对于每个 使得 位为 , 也在集合内。把 的答案改为 的答案,并把 集合继续递归。
33.Q1844. Cactus
能删就删,最后剩下一些全是偶度数的仙人掌,此时不存在只有两个点的点双,使用操作二。
建圆方树,对于一个环,保留连向父亲的一对点不动,其余绕环黑白染色,删光黑点,能删掉除了这对点以外的整个环。从叶子开始删即可,最后一定能删光。
46.Q2570. Maximal Subsequence
求出 ,。
最少删几个点。可以转为最小割,即连边 ,对于 连边 。最小割等于最大流,即选 条不相交 lis 为 的子序列。
可以直接选最靠左的合法的子序列。
48.Q2605. Soccer Match & 49.Q2606. Gachapon
Petrozavodsk Winter 2022. Day 6. ICPC Camp Day 1
59.Q4805. Grammy Sorting
若 给图定向 使得满足:对于每个 ,都有 ,等价于 是唯一 入度点, 是唯一 出度点,等价于 的双极定向。
倒序考虑双击定向的染色过程,后缀已经经过调整满足,加入点 。此时一定存在 的路径, 可以走到一个后缀,在后缀中乱走直到 。换这条路径可以使 加入后缀且符合条件。
对于任意图,求一棵生成树,存在通用的 做法,见 Q11628。
60.Q4808. Great Party
条件为: 为奇数或 。
归纳,偶数时不能进入奇数,每堆剩一个不能动;奇数时先手操作扔掉一个 可以使得剩下的为 。
74.Q7412. Counting Cactus
比 好想多了吧。
here。
84.Q8184. Different Summands Counting
枚举 ,容斥至少出现了 次。
对于每个 ,不超过 次多项式,求 个前缀和插值。
95.Q10091
预处理小的,搜大的。
110.Q11627. Rectangles & 111.Q11630. Simple APSP Problem
Petrozavodsk Winter 2018. Day 3. AtCoder Contest。
114.Q12212
怎么能在一个题单里出现两次。
可以 组询问单 log。
115.Q12213. Cool pairs
直接做。