随机乱做计划 Part 2
对 Umnik 想题法的两个尝试。
随机挑选四个题,什么时候想出来了再更新。
由于博主水平有限,所以不会做是正常情况。
题意:
CF1491G
桌面上有 \(n\) 枚硬币。初始时,第 \(c_i\) 号硬币位于位置 \(i\),正面朝上(\(c_1, c_2, \cdots, c_n\) 是一个 \(1 \sim n\) 的排列)。你可以对这些硬币做一些操作。每次操作,你可以如下进行:
- 选择两个不同的 \(i\) 和 \(j\)。
- 交换位于 \(i\) 和 \(j\) 的两枚硬币。
- 把位于 \(i\) 和 \(j\) 的两枚硬币分别翻转。
你可以进行不超过 \(n + 1\) 次操作,使得第 \(i\) 号硬币位于位置 \(i\),且都是正面朝上。
你不需要最小化操作的次数,输出任意一种方案即可。
\(3 \le n \le 2\times 10^5\)
想法
考虑若干个环。
容易发现长度为 \(n\) 的环可以在 \(n+1\) 次操作做完。
长度为 \(x,y\) 的两个环可以在 \(x+y\) 次操作同时做完。
CF1392G
给定两个长度为 \(k\) 的 \(01\) 串 \(S,T\),分别是起始串和目标串。
依次给出 \(n\) 个可选操作,第 \(j\) 个操作 \(a_j,b_j\) 表示交换起始串的 \(a_j\) 位置与 \(b_j\) 位置。
你需要选择操作序列中其中连续的一段操作依次按顺序执行,并且选择的操作数量不小于 \(m\) 。
你需要让操作完成后的串与目标串对应相同的位置数量尽可能多。
输出最大数量与你选取操作的区间(若有多种方案输出任意一个即可)。
\(2\le k \le 20, 1\le m \le n \le 10^6\)
想法
尝试差分。
令 \(a_i\) 表示 \(S\) 操作 \([i,n]\) 的结果,\(b_i\) 表示 \(T\) 操作 \([i,n]\) 的结果。
相当于找到 \(x,y\) 满足 \(y-x \ge m\) 令 \(\max \text{pop_count}(a_x\ \text{xor}\ b_y)\)。
注意到 \(k\) 较小,子集 dp 即可。
CF1266F
给出一颗 \(n\) 个点的树 (\(2\leq n\leq 5\times 10^5\))。
对于 \(k\in[1,n]\),找出一个最大的点集,使得点集内任意两点间距离为 \(k\) 或 \(k+1\)。
想法
显然对 \(k \not=1\),一定是三种情况:
- \(2\not\mid k\),选一个点作为根,每个子树选一个距离为 \(\dfrac{k}{2}+1\) 的点,至多选一个距离为 \(\dfrac{k}{2}\) 的点。
- \(2\mid k\),选一个点作为根,每个子树选一个距离为 \(\dfrac{k}{2}\) 的点。
- \(2\mid k\),选一个边,连接两个点的每个子树选一个距离为 \(\dfrac{k}{2}\) 的点。
困难在于:如果枚举每个点,并计算每个 \(k\) 的贡献,时间复杂度难以承受。
注意到每个点可能的最大答案不超过其度数,我们考虑枚举每个点,并计算每条出边的贡献。
这样就能解决 \(\text{case} 1,2\)。
对于 \(\text{case} 3\),我们实际需要解决的问题是:
\(O(m)\) 次单点加,\(n\) 次查询树上选出一条边,端点之和的最大值。
把一个点的贡献算到父亲上就好了。
CF1610H
猫猫们看了鱿鱼游戏,对其很感兴趣,决定自己举办一个猫猫游戏。
有 \(m\) 只猫猫参与了游戏,游戏失败的猫猫要被拉出去和铃酱贴贴。
蓝是游戏的裁判,由于所有猫猫都想和铃酱贴贴,于是她要淘汰所有的猫猫。下面是她淘汰猫猫的方式:
- 有一棵 \(n\) 个结点的无根树,每只猫猫都有两个特殊结点 \(x_i\) 与 \(y_i\)。
- 在一次操作中,蓝可以选择某个结点 \(v\)。接下来,对于所有未被淘汰的猫猫 \(i\),蓝将找到一个结点 \(w\),满足其在 \(x_i\) 到 \(y_i\) 的简单路径上且距离 \(v\) 最近,若 \(w\neq x_i\) 且 \(w\neq y_i\),那么猫猫 \(i\) 将会被淘汰。
现在蓝想要知道她至少要进行多少次操作才能淘汰所有的猫猫。如果无论如何都不能淘汰所有的猫猫,请输出 \(-1\)。
输入数据的第一行含两个数 \(n\) 与 \(m\),意义同上所述。第二行含 \(n-1\) 个数 \(par_2,par_3,\dots,par_n\),其中 \(par_i\) 代表无根树上存在一条连接 \(i\) 与 \(par_i\) 的边。接下来 \(m\) 行,第 \(i\) 行含两个数 \(x_i\) 与 \(y_i\),意义同上所述。
本题数据满足:\(1 \leq n,m \leq 3\times10^5,1 \leq par_i<i,1 \leq x_i,y_i \leq n,x_i\neq y_i\)
不想写做法了,这题有点怪。