Codeforces Round #768

Codeforces Round #768

A. And Matching

样例已知\(n=4,k=3\)无解.

首先直接配对就可以得到\(k=0\)的解.

注意到\(k<n\)如果\(k\neq n-1\), 直接将\(k\)\(n-1\)配对, \(0\)\(n-k-1\)配对即可.

\(k=n-1\)时, \((n-1,n-2)\ (1,3)\ (2,n-4)\ (0,n-3)\)可以解决问题.

D. Flipping Range

因为\(b_i\le n/2\), 通过叠加可以实现辗转相减. 于是考虑\(b=\gcd(B)\)即可.

\(b\ge2\)时, 操作是不满秩的, 考虑非自由元部分, 每一个操作在消元后, 只会在前\([0,b-2]\)个位置里留下1个1, 或者全为1. 直接计算消除每一位上的1需要花费的最小价值.

计算答案时对全取正需要的操作消元后, 枚举是否全部异或上1, 根据非自由元的满足情况舍弃这些位置上的最小值即可.

E. Expected Components

利用Burnside引理分别计算component总数, 和本质不同的排列总数.

其中环上component等于相邻不同色的下标个数.

于是可以对每一个颜色二元组计算贡献.