ARC AB 板刷
很好人类智慧题,比这几天做的紫黑都要难。
进度:171~183。
183
A:根据对称性逐步确定最高位,分类讨论奇偶。
B:正(限制太少无法决策)难则反。考虑操作 B,去匹配 A。原来的操作等价于,对于 \(B_i=B_j\) 且 \(|i-j|\le k\),将其中一个 \(B\) 设置为任意整数。
发现这个东西很有操作,能否任意排列 B?考虑 \(?xy\to yxy \to yxx\to yyx\to ?yx\),这样就交换了任意两个数。我们知道如果可以任意交换那么所有排列都是可以生成的。
注意到上面第一步转化时要求 \(k\ge 2\)。只需要判断有没有合法的相等 \(B\) 即可,当然还要有所有 A 里面的数。
当 \(k=1\) 时,直接暴力判断。只要去重之后 B 是 A 子序列即可。
C:一眼区间 dp,枚举最大值在哪里,转移系数类似笛卡尔树区间 dp,可达性也要区间 dp 计算。
182
A:按照 \(i-1\to i\) 推不出什么性质,数据范围提醒我们:对于一次操作,枚举所有操作,判断这个操作的选择有多少。
B:题目转化成二进制就是取每个数二进制前 \(len-k\) 前缀。贪心地,希望每一位一半是 0 一半是 1,这个可以分治下去。注意这个前缀要去掉前导零,所以直接给第一位全部 1。
181
A:如果有 \(a_i=i\) 并且前后值域符合就做完了,否则我们考虑做操作使得 \(a_1=1\) 或者 \(a_n=n\),然后再操作一次就完了。
B:显然可以解方程得出 \(|T|\),又显然 \(T\) 和 \(S\) 是包含关系。手完一下发现 \(|T|\) 要是 \(S\) 最小循环节的倍数。
180
A:考虑 1 和 2 操作都是删除前缀,或者理解为左/右不变。你考虑:XXXXXXXABABABABABXXXXXXXXXXXXXX
。发现操作过后那一坨相同的 X 都是不会变的,只可能变中间交替的 AB,这启示我们分段考虑。然后乘起来。
对于一个交替的段,像这样:..A(BABABA)B..
,现在我们只需要对中间的部分手玩即可。省略了。
B:题解有交换 \(i\) 和 \(P_i\) 的做法,没看懂,但是可以注意一下。