ARC195 做题记
A (Twice Subsequence)
题意
给定长为 \(n,m\) 的序列 \(a,b\),判断 \(b\) 是否在 \(a\) 中出现了超过两次。
即找到两个 \(a\) 中和 \(b\) 相等的子序列,并且 下标不完全相等。
输出 Yes 或 No 即可。
\(1\le n,m\le 2\times 10^5,1\le a_i,b_i\le 10^9\)
题解
显然不是直接数次数(不可做),并且我最开始给出了一个略复杂做法,有点小唐!
注意到只要找两个,于是我们找 最大 和 最小 即可。具体的这里是 下标字典序的最大/小。
分别 \(\mathcal{O(n)}\) 扫一遍即可。
B (Uniform Sum)
题意
给定两个数列 \(A=(A_1,\dots,A_N)\) 和 \(B=(B_1,\dots,B_N)\)。你可以对它们进行以下三种操作,顺序和次数不限:
- 
选择一个满足 $ A_i=-1 $ 的下标 $ i $,将 $ A_i$ 替换为任意非负整数。
 - 
选择一个满足 $ B_i=-1 $ 的下标 $ i $,将 $ B_i$ 替换为任意非负整数。
 - 
将数列 $ A $ 的元素按任意顺序重新排列。
 
请判断是否可以通过这些操作,使得最终 $ A $ 和 $ B $ 的所有元素均为 非负整数,并且满足 $ A_1+B_1=A_2+B_2=\cdots=A_N+B_N $
输出 Yes 或 No 即可。
\(N\le 2000,A_i,B_i\in [-1,10^9]\)
题解
最开始有个地方想错了,多 \(\log\),有点唐!
首先设 \(A,B\) 总共有 \(C\) 个 \(-1\),则我们还需要匹配 \(n-C\) 对和相等的数。
- 特别的,若 \(C\ge n\) 直接是 
Yes。 
然后 \(N\) 很小直接枚举和,然后判断能匹配多少对即可。
- 
由于填的全是非负整数,于是要求匹配的和 \(\ge {\color{red}{mx}}=\max(\{A_i\},\{B_i\})\)。
- 我第一次想法是和 \(\ge\) 剩下的最大值,但是容易发现直接加强成 \(\ge mx\) 即可。
 
 - 
注意比如 \(A\) 中出现 \(a\) 个 \(1\),\(B\) 中出现 \(b\) 个 \(2\),那么 \(1+2=3\) 只能匹配 \(\min(a,b)\) 个。
 
记录 \(ca/cb_x\) 表示 \(a/b\) 中 \(x\) 出现次数,枚举 \(x,y\),令 \(c_{x+y}\gets \min (ca_x,cb_y)\)。
最后判断是否存在 \(c_x\ge n-C,x\ge mx\) 即可。
我写法比较唐,常数比较大,请勿参考。按照我上文说的写就行。
C (Hamiltonian Pieces)
题意
给定 \([1,10^9]\times [1,10^9]\) 的棋盘,以及 \(R\) 个红色棋子和 \(B\) 个蓝色棋子。
红色棋子每步可纵向或横向移动 \(1\) 格,蓝色棋子每步可斜向移动 \(1\) 格,并且不能超出棋盘边界。更准确地说:
- 
位于格子 \((r, c)\) 的红色棋子可一步移动到 \((r+1, c)\)、\((r, c+1)\)、\((r-1, c)\)、\((r, c-1)\),并且不超出边界。
 - 
位于格子 \((r, c)\) 的蓝色棋子可一步移动到 \((r+1, c+1)\)、\((r+1, c-1)\)、\((r-1, c+1)\)、\((r-1, c-1)\),并且不超出边界。
 
现在需要将所有 \(R+B\) 个棋子以任意顺序放置在棋盘上,且必须满足以下条件:
- 
每个格子最多放置 \(1\) 个棋子。
 - 
对于每个 \(i\),第 \(i\) 个放置的棋子必须能够一步移动到第 \(i+1\) 个放置的棋子所在的格子。
- 特别定义第 \(R+B+1\) 个棋子为第 \(1\) 个棋子。
 
 
给出构造或判断无解。
\(2\le R+B\le 2\times 10^5,R,B\ge 0\)
题解
这题有无解的充要还是好找的。
首先红子对坐标的其中一维 \(\pm 1\),蓝子对坐标的其中两维 \(\pm 1\)。
由于最终要走成一个环,于是红子个数 \(R\) 一定是偶数。
- 再打个补丁,当 \(R=0\) 时,\(B\) 必须是偶数。
 
以上就是有解充要条件。
构造也是容易的,构造矩形 \(+\) 斜着的翅膀即可,分讨 \(B\) 的奇偶。
具体做法我懒得赘述了,自己思考肯定能想到。实在不行看原题题解。
复杂度线性。
D (Swap and Erase)
题意
给定一个数列 $ A = (A_1, \ldots, A_N) $。你可以对 $ A $ 进行以下两种操作,顺序和次数不限:
设操作前 $ A $ 的长度为 $ K $。
- 
交换操作:选择 $ 1 \leq i \leq K - 1 $ 的整数 $ i $,交换 \((A_i,A_i+1)\)。
 - 
删除操作:选择 $ 1 \leq i \leq K $ 且 $ A $ 的前 $ i $ 项全部相等的整数 $ i $,删除 $ A_1\sim A_i$。
 
请求出将 $ A $ 删空所需的最小总操作次数。
\(1\le N,A_i\le 2\times 10^5\)
题解
一如既往地 讨厌结论题!
显然我们是进行完了操作一再进行操作二,显然操作二的答案等于连续段的数目,即 \(a_i\neq a_{i-1}\) 的数目加一。
- 结论:每个数只会被交换一次,即交换 \((i,i+1)\) 时不能同时交换 \((i-1,i)\)。
 
知道这个结论后用脚写个 \(\mathcal{O}(n)\) dp,记录 \(f_{i,0/1}\) 表示到 \(i\),是否交换了 \((i-1,i)\)。
接下来详细说明这个结论。大概的思路就是很多时候交换不如直接删除,所以交换的限制比较严苛。
注意到反复横跳显然不优,如果跳过去之后被换的另一个数被继续交换,显然一定存在一个数一直往一个方向走,即 a b c,变成了 b c a,因此只存在一个数往一边走的情况。
假设我们 $a_{l}\ a_{l+1}\ \cdots\ a_r\to a_{l+1}\ \cdots\ a_r\ a_l $,并且换了至少 \(2\) 步,即 \(r-l\ge 2\)。
考虑 可能 减少了哪几个不等号:\((l-1,l),(l,l+1),(r,r+1)\) 三对。
考虑 可能 增加了哪几个不等号:\((l-1,l+1),(r,l),(l,r+1)\) 三对。
- 由于我们消耗了至少两步,于是顶多只能 恰好减少三个 不等号。
 
即第一行全是不等,第二行全是相等。
则 \(a_{r+1}\neq a_r=a_l=a_{r+1}\) 矛盾!
于是不可能换至少 \(2\) 步,就证明了原题的结论。
E (Random Tree Distance)
题意
给定 \(n\),定义 \(fa_x\) 表示 \(x\) 在以 \(1\) 为根的树下的父亲。如下定义随机生成树的过程:
- 依次 \(k:2\to n\),独立均匀随机 \([1,k-1]\) 的一个数作为 \(fa_k\)。
 
给定 \(a_{2\sim n}\),其中 \(a_k\) 表示 \(k\sim fa_k\) 这条边的边权。
\(q\) 次询问 \(u,v\),求这种这样所有 \((n-1)!\) 种随机方案中 \(\sum \text{dis}(u,v)\),对 \(998244353\) 取模。
\(2\le n,q\le 2\times 10^5,1\le a_i\le 10^9,1\le {\color{red}{u_i<v_i}}\le n\)
题解
这东西搞成期望会好想或者好做一点,最后 \(\times (n-1)!\) 即可。
定义 \(d_u\) 表示 \(u\to 1\) 路径上的边权和。
先算 \(D_u=\mathbb{E}(d_u)\),枚举 \(i=fa_u\):
直接 \(\mathcal{O}(n)\) 递推预处理即可。
接下来算 \(f(u,v)=\mathbb{E}(d_{\text{lca}(u,v)})\)。
直接刻画 \(\text{lca}(u,v)\) 是比较困难的,考虑变一变 \(v\)。
考虑 \(v\) 往上跳的过程,你发现 \(v\) 祖先中第一个 \(\le u\) 的值的是均匀分布的。
由于 \(fa_v\) 的均匀性,每次 \(fa_v\) 若 \(\le u\) 则概率一定是均等的,否则递归进行,因此一直都是均等的。
于是你发现 \(v\) 取何值都不影响 \(f(u,v)\) 的值!
枚举这个第一个 \(\le u\) 的值 \(i\),特判 \(i=u\):
也是 \(\mathcal{O}(n)\) 递推预处理即可。
关于 \(\text{lca(u,v)}=w\) 概率的研究:这里
当然这个是更强的结论了。
还有一个更强的结论是 \(v<u\) 在 \(u\to 1\) 路径上的概率为 \(\dfrac{1}{v}\)

                
            
        
浙公网安备 33010602011771号