[联合省选 2020A] 组合数问题 题解

后面有一只大大的组合数,考虑下降幂干过去。\(x^k\) 并不好使,这边考虑转化 \(f(x)=\sum a_ix^i=\sum b_ix^{\underline i}\)

\[\sum_{k=0}^nf(k)x^k\binom nk=\sum_{k=0}^nx^k\sum_{i=0}^mb_ik^{\underline i}\binom nk \]

\[=\sum_{k=0}^nx^k\sum_{i=0}^mb_in^{\underline i}\binom{n-i}{k-i} \]

\[=\sum_{i=0}^mb_in^{\underline i}\sum_{k=0}^{n-i}x^{k+i}\binom{n-i}k \]

\[=\sum_{i=0}^mb_in^{\underline i}x^i(x+1)^{n-i} \]

最后一步的转化是二项式定理。
那现在问题变为如何快速求解 \(b_i\)。考虑第二类斯特林数。

\[\sum_{i=0}^ma_ix^i=\sum_{i=0}^ma_i\sum_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix}x^{\underline j} \]

\[=\sum_{i=0}^mx^{\underline i}\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

\[\sum_{i=0}^mb_ix^{\underline i}=\sum_{i=0}^mx^{\underline i}\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

\[b_i=\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

\[\sum_{k=0}^nf(k)x^k\binom nk=\sum_{i=0}^mn^{\underline i}x^i(x+1)^{n-i}\sum_{j=i}^ma_j\begin{Bmatrix}j\\i\end{Bmatrix} \]

那预处理出第二类斯特林数即可。时间复杂度 \(O(m^2)\)

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1005;
int n,x,p,m,str[N][N],a[N],ans;
int qpow(int x,int y){
    int re=1;
    while(y){
        if(y&1) re=re*x%p;
        x=x*x%p,y>>=1;
    }return re;
}signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n>>x>>p>>m,str[0][0]=1;
    for(int i=1;i<=m;i++) for(int j=1;j<=i;j++)
        str[i][j]=(str[i-1][j-1]+j*str[i-1][j])%p;
    for(int i=0;i<=m;i++) cin>>a[i];
    for(int i=0,sum=0;i<=m;i++,sum=0){
        for(int j=i;j<=m;j++)
            sum=(sum+a[j]*str[j][i])%p;
        for(int j=n-i+1;j<=n;j++)
            sum=sum*j%p*x%p;
        ans=(ans+sum*qpow(x+1,n-i))%p;
    }cout<<ans;
    return 0;
}
posted @   长安一片月_22  阅读(5)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示