CF2154F sol

· · 题解

CF上把官解爆了的神奇做法。

F1

性质:除了排列 1, 2, \dots, n,其余排列最多找到一个 k, 使得这个集合可以被划分成题目所述的 Rifle Shuffle。

这个性质是比较显然的,因为但凡排列中存在逆序对,就意味着分割位置被唯一确定,可以自行思考。

我们按照题面,设分割点为 k,则我们将所有 p_i \le k 染成红色,其余染成蓝色。

容易注意到一个值为 x 的红色元素,它的左边必然恰好有 x - 1 个同色元素;对于蓝色元素,它的左边恰有 x - k - 1 个蓝色元素。

因为范围支持 O(n^2),所以我们先枚举 k 然后从左往右 dp,对于每个已确定的元素计算它相比于上一个同色元素需要多填多少元素,一个组合数草上去就做完了。

F2

怎么有这么牛的爆标做法。赞美荷兰老哥。

注意到对于每个已经确定的元素 p_i = x ,若 p_i - x < 0p_i 一定在小的集合;反之若 p_i - x > 0p_i 一定在大的集合。只有 p_i = i 的时候我们没办法确定这货是哪边的。