Martian148's blog Martian148's blog
首页
  • ICPC 算法笔记
  • ICPC 算法题解
  • 体系结构
  • 高等数学
  • 线性代数
  • 概率论与数理统计
  • 具体数学
  • Martian148的奇思妙想
  • 游记
  • 通识课笔记
关于
  • useful 网站
  • 友情链接
  • 分类
  • 归档

Martian148

一只热爱文科的理科生
首页
  • ICPC 算法笔记
  • ICPC 算法题解
  • 体系结构
  • 高等数学
  • 线性代数
  • 概率论与数理统计
  • 具体数学
  • Martian148的奇思妙想
  • 游记
  • 通识课笔记
关于
  • useful 网站
  • 友情链接
  • 分类
  • 归档
  • codeforses 题解

  • atcoder 题解

  • XCPC 题解

  • 校训练赛题解

  • 牛客题解

  • 蓝桥杯题解

  • 典题选讲

    • CF2025E Card Game (动态规划、多项式快速幂、银牌题)
    • CF2026E Best Subsequence(网络流、最大权闭合图,铜牌题)
    • 牛客多校6 C Stack(数论,第一类斯特林数,铜牌题)
      • ICPC2025Online2 E Zero
    • 算法题解
    • 典题选讲
    martian148
    2025-07-31
    目录

    牛客多校6 C Stack(数论,第一类斯特林数,铜牌题)

    # 牛客多校6 C Stack(数论,第一类斯特林数,铜牌题)

    # Question

    Stack (opens new window)

    定义 f(p)f(p)f(p) 为对排列 ppp 跑一次单调栈之后栈中剩余元素的个数,求长度为 nnn 的所有排列的 (f(p))3(f(p))^3(f(p))3 的和,一共有 TTT 组询问

    # Solution

    借鉴了牛课讨论区的一个大佬的做法:链接 (opens new window)

    定义了 g(n,i)g(n,i)g(n,i) 表示长度为 nnn 的所有排列中 f(p)=if(p)=if(p)=i 的个数,我们要求的答案就是 S(n)=∑i=1ng(n,i)×i3S(n)=\sum_{i=1}^n g(n,i)\times i^3S(n)=∑i=1n​g(n,i)×i3

    这是第一类斯特林数的一个定义,得到 g(n+1,i)=ng(n,i)+g(n,i−1)g(n+1, i)=ng(n,i)+g(n, i-1)g(n+1,i)=ng(n,i)+g(n,i−1)

    试着计算 S(n+1)S(n+1)S(n+1) 的递推式

    S(n+1)=∑i=1n+1g(n,i)×i3=n∑i=1n+1i3×g(n,i)+∑i=0ng(n,i)×(i+1)3=n∑i=1ni3×g(n,i)+∑i=1ng(n,i)×(i3+3i2+3i+1)=(n+1)∑i=1ng(n,i)×i3+3∑i=1ng(n,i)×i2+3∑i=1ng(n,i)×i+∑i=1ng(n,i) \begin{aligned} S(n+1)&=\sum_{i=1}^{n+1} g(n,i)\times i^3\\ &=n\sum_{i=1}^{n+1}i^3 \times g(n,i)+\sum_{i=0}^n g(n, i)\times (i+1)^3\\ &=n\sum_{i=1}^{n} i^3 \times g(n,i)+\sum_{i=1}^n g(n, i)\times (i^3+3i^2+3i+1)\\ &=(n+1)\sum_{i=1}^{n} g(n,i)\times i^3 +3\sum_{i=1}^n g(n,i)\times i^2+3\sum_{i=1}^n g(n,i)\times i+\sum_{i=1}^n g(n,i) \end{aligned} S(n+1)​=i=1∑n+1​g(n,i)×i3=ni=1∑n+1​i3×g(n,i)+i=0∑n​g(n,i)×(i+1)3=ni=1∑n​i3×g(n,i)+i=1∑n​g(n,i)×(i3+3i2+3i+1)=(n+1)i=1∑n​g(n,i)×i3+3i=1∑n​g(n,i)×i2+3i=1∑n​g(n,i)×i+i=1∑n​g(n,i)​

    已知 ∑i=1ng(n,i)\sum_{i=1}^n g(n,i)∑i=1n​g(n,i) 表示所有排列方案,即 n!n!n!

    然后观察到,∑i=1ng(n,i)×i3\sum_{i=1}^{n} g(n,i)\times i^3∑i=1n​g(n,i)×i3 就是 S(n)S(n)S(n),但是 ∑i=1ng(n,i)×i2\sum_{i=1}^n g(n,i)\times i^2∑i=1n​g(n,i)×i2 和 ∑i=1ng(n,i)×i\sum_{i=1}^n g(n,i)\times i∑i=1n​g(n,i)×i 未知,我们分别把他们定义为 S2(n)S_2(n)S2​(n) 和 S1(n)S_1(n)S1​(n) 寻找他们的递推式

    S2(n+1)=∑i=1n+1g(n,i)×i2=n∑i=1n+1i2×g(n,i)+∑i=0ng(n,i)×(i+1)2=n∑i=1ni2×g(n,i)+∑i=1ng(n,i)×(i2+2i+1)=(n+1)∑i=1ng(n,i)×i2+2∑i=1ng(n,i)×i+∑i=1ng(n,i)=(n+1)S2(n)+2S1(n)+n! \begin{aligned} S_2(n+1)&=\sum_{i=1}^{n+1} g(n,i)\times i^2\\ &=n\sum_{i=1}^{n+1}i^2 \times g(n,i)+\sum_{i=0}^n g(n, i)\times (i+1)^2\\ &=n\sum_{i=1}^{n} i^2 \times g(n,i)+\sum_{i=1}^n g(n, i)\times (i^2+2i+1)\\ &=(n+1)\sum_{i=1}^{n} g(n,i)\times i^2+2\sum_{i=1}^n g(n,i)\times i+\sum_{i=1}^n g(n,i)\\ &=(n+1)S_2(n)+2S_1(n)+n! \end{aligned} S2​(n+1)​=i=1∑n+1​g(n,i)×i2=ni=1∑n+1​i2×g(n,i)+i=0∑n​g(n,i)×(i+1)2=ni=1∑n​i2×g(n,i)+i=1∑n​g(n,i)×(i2+2i+1)=(n+1)i=1∑n​g(n,i)×i2+2i=1∑n​g(n,i)×i+i=1∑n​g(n,i)=(n+1)S2​(n)+2S1​(n)+n!​
    S1(n+1)=∑i=1n+1g(n,i)×i=n∑i=1n+1i2×g(n,i)+∑i=0ng(n,i)×(i+1)=(n+1)∑i=1ng(n,i)×i+n!=(n+1)S1(n)+n! \begin{aligned} S_1(n+1)&=\sum_{i=1}^{n+1} g(n,i)\times i\\ &=n\sum_{i=1}^{n+1}i^2 \times g(n,i)+\sum_{i=0}^n g(n, i)\times (i+1)\\ &=(n+1)\sum_{i=1}^{n} g(n,i)\times i+n!\\ &=(n+1)S_1(n)+n! \end{aligned} S1​(n+1)​=i=1∑n+1​g(n,i)×i=ni=1∑n+1​i2×g(n,i)+i=0∑n​g(n,i)×(i+1)=(n+1)i=1∑n​g(n,i)×i+n!=(n+1)S1​(n)+n!​

    于是我们得到了递推式

    S(n)=nS(n−1)+3S2(n−1)+3S1(n−1)+(n−1)!S2(n)=nS2(n−1)+2S1(n−1)+(n−1)!S1(n)=nS1(n−1)+(n−1)! \begin{aligned} S(n)&=n S(n-1)+3 S_{2}(n-1)+3 S_{1}(n-1)+(n-1)! \\ S_{2}(n)&=n S_{2}(n-1)+2 S_{1}(n-1)+(n-1)! \\ S_{1}(n)&=n S_{1}(n-1)+(n-1)! \end{aligned} S(n)S2​(n)S1​(n)​=nS(n−1)+3S2​(n−1)+3S1​(n−1)+(n−1)!=nS2​(n−1)+2S1​(n−1)+(n−1)!=nS1​(n−1)+(n−1)!​

    其中 S(0)=S1(0)=S2(0)=0S(0)=S_1(0)=S_2(0)=0S(0)=S1​(0)=S2​(0)=0

    CF2026E Best Subsequence(网络流、最大权闭合图,铜牌题)
    ICPC2025Online2 E Zero

    ← CF2026E Best Subsequence(网络流、最大权闭合图,铜牌题) ICPC2025Online2 E Zero→

    最近更新
    01
    打破信息差,一条学校不教的计算机学习之路
    09-18
    02
    ICPC2025Online2 E Zero
    09-18
    03
    模型与分词器
    09-17
    更多文章>
    Theme by Vdoing | Copyright © 2024-2025 Martian148 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式