题目大意 求有多少中1~n的排列,使得\(abs(第i个位置的值-i)!=k\) 解题思路 考虑容斥,\(ans=\sum_{i=0}^{n}(-1)^ig[i](n-i)!(g[i]表示至少有i个位置是不合法的方案数)\) 考虑如何求g[i] 将每个位置和每个值都作为一个点,有2n个点,如果第i位置不可以填j,将位置i向值j连边. 这样,就得到了一个二分图,问题就变成了选i条边的方案数. 将二分图的每条链拉出来,并在一起,就形成2n个点排成一排,一些相邻点之间有边. 设\(f[i][j][0/…