CF1671F题解
首先,观察到逆序数很小,所以整个排列被移动的数很少,最多有 \(22\) 个数不在原来的位置上,从排列与逆序数关系上来看,因为一次交换意味着增加一个逆序对,所以最多对 \(22\) 个位置有影响。
这样那些位置不动的一段都不用考虑。
考虑将整个排列划分成这样的 “区间”分开考虑:
- \(p_l,p_{l+1},\cdots,p_r\in [l,r]\)
- 该区间的子区间不满足以上条件。
我们只用考虑长度大于 \(1\) 的区间。
由于该区间不能由中间断开,意味着将其排好序必须交换每一个相邻元素,所以若该区间长度为 \(l\),逆序数至少为 \(l-1\)。
这样一个区间长度最长为 \(12\)。由于只有 \(11\) 个逆序对,这样的区间最多 \(11\) 个。
这样每个区间就独立了,同时注意到单独一个区间的方案数只跟 \(l,r\) 的相对大小有关,即该区间的长度,由于范围较小,可以暴搜出单个区间的所有方案,记 \(cnt_{i,j,k}\) 表示长度为 \(i\),逆序数为 \(j\),下降数为 \(k\) 的区间的数量。
考虑现在填入了 \(i\) 个合法区间,总长为 \(j\),由 插板法 可知方案数为 \({{n-j+i}\choose{i}}\),只用再乘上 \(i\) 个区间,总长为 \(j\),逆序数为 \(k\),下降数为 \(x\) 的方案数,记为 \(dp_{i,j,k,x}\),统计答案时枚举 \(i,j\) 求和即可。
状态转移:
\(dp_{i,j,k,l} \leftarrow dp_{i,j,k,l}+dp_{i-1,x,y,z}cnt_{j-x,k-y,l-z}\)
浙公网安备 33010602011771号