1 条题解

  • 0
    @ 2026-9-3 11:05:16

    题解

    思路

    令 di,sd_{i,s} 表示长度为 ii 且 fun 值为 ss 的排列数。若首元素排名为 jj,左右长度分别为 j−1j-1 与 i−ji-j;选出左侧元素集合有 (i−1j−1)\binom{i-1}{j-1} 种,总代价再加 ii。

    定义生成函数 Fi(x)=∑sdi,sxsF_i(x)=\sum_s d_{i,s}x^s,则

    $$F_0=1,\quad F_i=x^i\sum_{j=1}^i\binom{i-1}{j-1}F_{j-1}F_{i-j}.$$

    做法

    子任务 1 枚举全部排列并直接递归模拟。子任务 2 用上述式子直接卷积系数。

    满分算法注意 deg⁡Fn≤D=n(n+1)/2\deg F_n\le D=n(n+1)/2。在 D+1D+1 个点分别计算 Fn(x)F_n(x):令 Hi=Fi/i!H_i=F_i/i!,二项式系数消去后有

    Hi=xii∑j=0i−1HjHi−1−j,H_i=\frac{x^i}{i}\sum_{j=0}^{i-1}H_jH_{i-1-j},

    所以单点只需 O(n2)O(n^2)。再用拉格朗日插值恢复 FnF_n 的全部系数,最后求 s≥lims\ge lim 的系数和。等距点的分母由阶乘、逆阶乘 O(1)O(1) 得到;公共乘积多项式除以一次因子可用合成除法线性完成。

    正确性证明

    按首元素排名划分时,左右子排列的相对次序独立,元素集合选择数为对应二项式系数,且当前调用恰贡献 ii,故生成函数递推逐项精确计数。除以阶乘只是代数等价变形。FnF_n 次数不超过 DD,因此 D+1D+1 个互异点唯一确定它;拉格朗日恢复的各系数正是 dn,sd_{n,s},尾和即题目答案。

    复杂度分析

    满分算法时间复杂度 O(n4)O(n^4),空间复杂度 O(n2)O(n^2)。

    • 1

    信息

    ID
    1416
    时间
    5000ms
    内存
    512MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者