1 solutions

  • 0
    @ 2026-10-6 15:24:50

    考虑当 ai≤ai+1a_i\le a_{i+1} 时拆成 ai+1−aia_{i+1}-a_i 个 +1+1,当 ai>ai+1a_i>a_{i+1} 时拆成 ai−ai+1a_i-a_{i+1} 个 −1-1,那么原序列变成了一个由 +1+1 和 −1-1 组成的长度为 2m2m 的序列,满足总和 =0=0 且每个前缀和都 ≥0\ge 0,称满足这个条件的序列为合法序列。

    先考虑一个合法序列 bb 怎么变回原序列,这相当于将 bb 分成 n+1n+1 段,可以为空,且每一段的数都相同。那就是必须要分割 bi≠bi+1b_i\neq b_{i+1} 的位置,然后其他位置任选。记 bb 中由 +1+1 构成的连续段有 kk 个,因为 b1=1b_1=1 且 b2m=−1b_{2m}=-1 所以由 −1-1 构成的连续段也有 kk 个,那么 bi≠bi+1b_i\neq b_{i+1} 的位置数就有 2k−12k-1 个。剩下 n−2k+1n-2k+1 个分割点可以随意放在 2m+12m+1 个位置,那么变回原序列的方案数就是 (n−2k+1+2m2m)\dbinom{n-2k+1+2m}{2m}。

    接下来的问题就是对 k=1∼min⁡(m,⌊n+12⌋)k=1\sim \min(m,\lfloor\frac{n+1}{2}\rfloor) 计算有多少个合法序列满足恰好有 kk 个连续 +1+1 段,记答案为 f(k)f(k)。考虑以下引理:对于长度为 nn 的序列 xx 满足 ∑i=1nxi=1\sum\limits_{i=1}^{n}x_i=1,则其所有循环位移中恰好有一个满足所有的前缀和 >0>0。(Raney 引理)

    证明:即证明存在恰好一个 ii,使得 si∼si+n−1s_i\sim s_{i+n-1} 均 >si−1>s_{i-1},由于 si+n=si+1s_{i+n}=s_i+1,所以可以发现 si−1s_{i-1} 必然是 s0∼sn−1s_0\sim s_{n-1} 中的最小值(不然最小值对应的那个 sjs_j 必然 ≤si−1\le s_{i-1}),进一步发现必然是最右边的最小值(不然其右边的最小值 sj=si−1s_j=s_{i-1}),因此只有唯一一个 ii 满足条件。

    现在再来考虑 f(k)f(k) 怎么算。在合法序列前面添加一个 11,此时这个序列满足总和 =1=1,且前缀和的限制变为 >0>0。那么令不要求前缀和 >0>0 的方案数为 g(k)g(k),有 f(k)=1kg(k)f(k)=\dfrac{1}{k}g(k)(因为将整个序列放到圆上,选一个起点然后顺时针选就能得到一个新的序列,因为这个起点必然是 +1+1 连续段的起点,如果存在两个不同的起点得到的序列同构那么 (m,m+1)>1(m,m+1)>1 显然不可能,所以 kk 个起点分别对应了一个不要求前缀和的合法序列,再由 Raney 引理可得其中只存在一个序列合法,即可得到这个式子)。g(k)g(k) 不难插板算出,即 $f(k)=\dfrac{1}{k}\dbinom{m}{k-1}\dbinom{m-1}{k-1}=\dfrac{1}{m}\dbinom{m}{k-1}\dbinom{m}{k}$。

    那么答案即为 $\displaystyle\dfrac{1}{m}\sum_{k=1}^{\min(m,\lfloor\frac{n+1}{2}\rfloor)}\dbinom{n-2k+1+2m}{2m}\dbinom{m}{k-1}\dbinom{m}{k}$,直接计算即可。时间复杂度 O(n+m)\mathcal O(n+m)。

    • 1

    Information

    ID
    31
    Time
    1000ms
    Memory
    512MiB
    Difficulty
    6
    Tags
    (None)
    # Submissions
    41
    Accepted
    12
    Uploaded By