一道很好的题目,运用了很多不同的技巧。
结论1:枚举变换次数\(k\),若\(A_{i}\)对答案有贡献,当且仅当\(C_{n-i+k-1}^{k-1}\equiv 1 \mod 2\)。
首先我们可以统计\(A_{p}\)对答案进行了多少次异或,这个可以使用DP计算:\(dp(i,j)\)为进行\(k\)次变换,第\(j\)个数中包含多少个\(A_{p}\)。转移就是\(dp(i,j)=\sum_{k<j} dp(i-1,k)\)。其中\(dp(0,p)=1\)。
发现\(dp(i,j)=\sum_{k<j} dp(i-1,k)\)可以写成一个等价的转移:\(dp(i,j)=dp(i-1,j)+dp(i,j-1)\)。而这个是非常出名的网格图路径个数问题(\(n\)行\(m\)列网格图,从左上到右下最短路共有\(C_{n-1+m-1}^{m-1}\)条),带入式子中就是\(C_{n-i+k-1}^{k-1}\)。
异或具有自反性,故异或偶数次就没有对答案有贡献,所以若想对答案有贡献,则\(C_{n-i+k-1}^{k-1}\equiv 1 \mod 2\)。
标签:AtCoder,Contest,异或,Regular,137,答案,mod,dp,equiv From: https://www.cnblogs.com/Nastia/p/16753956.html结论2:在杨辉三角上,\(C_{x}^{y}\equiv 1\mod 2\),当且仅当\(x\&y=y\)(这里&是二进制下按位与)。