1 条题解
-
0
自动搬运
来自洛谷,原作者为

Sol1
博客:sol1.netlify.app搬运于
2025-08-24 22:33:02,当前版本为作者最后更新于2021-04-21 22:55:13,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
upd. 把那个大公式改得稍微好看一点…要不然太长了
idea 为原题改编设 为全局逆序对数量,以及:
$$\begin{cases}f(n)=\sum_{i=0}^n[n]_i\\g(n)=\sum_{i=0}^n(i+1)[n]_i\\h(n)=\sum_{i=0}^n(i+1)^2[n]_i\end{cases} $$其中 均有线性递推式:
$$\begin{cases}f(n)=1+nf(n-1)\\g(n)=1+n[g(n-1)+f(n-1)]\\h(n)=1+n[h(n-1)+2g(n-1)+f(n-1)]\end{cases} $$对于 ,考虑在哪些方案中 和 会被交换。
情况 :子序列中同时出现 ,且重新排列之后 换到 前面。
考虑枚举子序列长度,得到方案数为:
$$\begin{aligned}&\sum_{k=0}^{n-2}\binom{n-2}{k}\cdot \dfrac{(k+2)!}{2}\\=&\sum_{k=0}^{n-2}\dfrac{(n-2)!}{k!(n-2-k)!}\cdot\dfrac{k!\cdot(k+1)\cdot(k+2)}{2}\\=&\sum_{k=0}^{n-2}\dfrac{(k+1)\cdot(k+2)}{2}[n-2]_k\\=&\dfrac{g(n-2)+h(n-2)}{2}\end{aligned} $$情况 : 在子序列里面, 不在子序列里面,重新排列后 被放到了 后面。
考虑枚举有几个子序列的元素出现在 前面,以及有几个出现在 后面。
得到下式:
$$\sum_{k=1}^{n-j}\sum_{l=0}^{j-2}\binom{n-j}{k}\binom{j-2}{l}k(k+l)! $$拆定义式变形:
$$\sum_{k=1}^{n-j}\sum_{l=0}^{j-2}\dfrac{(n-j)!}{k!(n-j-k)!}\cdot\dfrac{(j-2)!}{l!(j-l-2)!}\cdot k(k+l)! $$提出 ,约去 :
$$(n-j)\sum_{k=1}^{n-j}\sum_{l=0}^{j-2}\dfrac{(n-j-1)!}{(k-1)!(n-j-k)!}\cdot\dfrac{(j-2)!}{l!(j-l-2)!}\cdot (k+l)! $$组合数定义式变形:
$$(n-j)\sum_{k=0}^{n-j-1}\sum_{l=0}^{j-2}\binom{n-j-1}{k}\binom{j-2}{l}(k+l+1)! $$调换枚举顺序(先枚举 ):
$$(n-j)\sum_{k=0}^{n-3}(k+1)!\sum_{l=0}^{j-2}\dbinom{n-j-1}{k-l}\dbinom{j-2}{l} $$沃德你蒙德恒等式变形:
拆定义式变形:
代入预设函数:
情况 : 在子序列里面, 不在子序列里面,重新排列后 被放到了 前面。
类似情况 可以得到情况数为
全部合起来再加上全局逆序对的贡献就得到区间 的答案式:
$$\text{Ans}(1,n)=f(n)\cdot I-\sum_{i=1}^n\sum_{j=i+1}^n \operatorname{sgn}(a_i-a_j)\cdot\left[\dfrac{h(n-2)+g(n-2)}{2}+(i-1+n-j)g(n-3)\right] $$预处理 ,树状数组即可。
复杂度 。
- 1
信息
- ID
- 6476
- 时间
- 1000ms
- 内存
- 250MiB
- 难度
- 6
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者