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

Karry5307
兄弟会背叛你,女人会离开你,金钱会诱惑你,生活会刁难你,只有数学不会,不会就是不会,怎么学都不会搬运于
2025-08-24 22:28:26,当前版本为作者最后更新于2021-01-26 18:10:28,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题意
组询问,求有多少个长度为 的排列 满足如下条件:
-
-
-
恰好存在 个位置 满足 且 。
答案对 取模。
$\texttt{Data Range:}1\leq T\leq 2\times 10^5,3\leq n\leq r\leq 2\times 10^5,\max(1,\lfloor\frac{n-1}{2}\rfloor-10)\leq k\leq \lfloor\frac{n-1}{2}\rfloor$
前言
Rikka 可爱!
题解
首先考虑暴力 DP。由于我们只需要关心极大值有多少个,只需要看有多少个极长单调子段。讨论一下第一个和最后一个位置所处子段的单调性就可以设四个东西来:
-
设 表示长度为 并满足 且有 个极大值的排列个数。
-
设 表示长度为 并满足 且有 个极大值的排列个数。
-
设 表示长度为 并满足 且有 个极大值的排列个数。
-
设 表示长度为 并满足 且有 个极大值的排列个数。
这里排列的第一个和最后一个位置并不算极大值,下面的图中,左上表示 ,右上表示 ,左下表示 ,右下表示 ,红圈圈出来的表示计入的极大值,必须要恰有 个,一个极长单调子段中只标出了首尾元素。

同时有两个性质:如果 是被计入 的,那么 则会被计入 ,也即 。如果 是被计入 的,那么 则会被计入 ,但是要多统计一个极大值,也即 。
这样只需要对 和 进行 DP。考虑将 插到长度为 的排列中。注意到插到极大值两边不会造成 的增加,别的地方均可以造成极大值的增加(这也是为什么首尾不计入极大值的原因),于是可以列出如下式子:
$$\begin{cases}f_{i,j}=2jf_{i-1,j}+(i-2j)f_{i-1,j-1}+g_{i-1,j-1}+g^{\prime}_{i-1,j-1}\\g_{i,j}=2jg_{i-1,j}+(i-2j-1)g_{i-1,j-1}+g_{i-1,j}+f_{i-1,j}+h_{i-1,j-1}\end{cases} $$第一个式子中右边分别表示插在极大值两侧,不插在极大值两侧,插在满足 的排列的前两个位置之间,满足 的后两个位置之间。第二个式子中右边分别表示插在极大值两侧,不插在极大值两侧,插在满足 的排列的最左边,满足 的最左边以及满足 的前两个位置之间。
但是根据之前的两个性质可以简化一下这个式子:
$$\begin{cases}f_{i,j}=2jf_{i-1,j}+(i-2j)f_{i-1,j-1}+2g_{i-1,j-1}\\g_{i,j}=(2j+1)g_{i-1,j}+(i-2j-1)g_{i-1,j-1}+2f_{i-1,j}\end{cases} $$注意到这两个式子长得很像,所以可以合并成一个。设 $f^{\prime}_{i,2j}=f_{i,j},f^{\prime}_{i,2j+1}=g_{i,j}$,那么很明显可以合并成这样:
$$f^{\prime}_{i,j}=jf^{\prime}_{i-1,j}+(i-j)f^{\prime}_{i-1,j-2}+2f^{\prime}_{i-1,j-1} $$DP 即可拿到 32pts。
注意数据范围有一个 $\max(1,\lfloor\frac{n-1}{2}\rfloor-10)\leq k\leq \lfloor\frac{n-1}{2}\rfloor$,相当于是只需要你回答靠近对角线位置的值,所以看看能不能快速求出对角线上的值。
这里存在另外一个 DP。设 表示长度为 的排列中每个数交错并且 的排列个数, 表示长度为 的排列中每个数交错并且 的排列个数,枚举 放在哪里可以得到以下式子:
$$\begin{cases}f_{n}=\sum\limits_{i\text{ is odd}}\binom{n-1}{i}f_{i}f_{n-1-i}\\g_n=\sum\limits_{i\text{ is even}}\binom{n-1}{i}g_{i}f_{n-1-i}\end{cases} $$到这一步可以 分治 FFT,然而这个做法不优秀,但本题可以通过。
钦定 在 为偶数的时候, 在 为奇数的时候为 ,设 为 的 EGF,则有
考虑解这个微分方程,鉴于讲评时的反响,这里给出具体解法。
$$\def\rd{\ \mathrm{d}} \frac{\rd F(x)}{\rd x}=F^2(x)+1\\\ \\ \frac{1}{F^2(x)+1}\rd F(x)=\rd x\\\ \\ \int \frac{1}{F^2(x)+1}\rd F(x)=\int\rd x\\\ \\ \tan^{-1}F(x)=x+C\\\ \\ F(x)=\tan (x+C) $$可以自行检验 ,即 ,以及
$$\def\rd{\ \mathrm{d}} \frac{\rd G(x)}{\rd x}=G(x)\tan x\\\ \\ \frac{1}{G(x)}\rd G(x)=\tan x\rd x\\\ \\ \int \frac{1}{G(x)}\rd G(x)=\int \tan x\rd x\\\ \\ \ln\vert G(x)\vert=\ln\vert\sec x\vert+C\\\ \\ \vert G(x)\vert=C\vert\sec x\vert $$可以自行检验 且绝对值取正,所以 。
于是,,多项式求逆即可,然后再递推回来得到所有的 ,时间复杂度 。
代码就不放了,实在需要代码的找我。
彩蛋:


-
- 1
信息
- ID
- 6039
- 时间
- 400ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者