首页 > 其他 > 详细

CF932E Team Work(第二类斯特林数)

时间:2019-04-15 16:46:32      阅读:110      评论:0      收藏:0      [点我收藏+]

题目

CF932E Team Work

前置:斯特林数\(\Longrightarrow\)点这里

做法

\[\begin{aligned}\&\sum\limits_{i=1}^n C_n^ii^k\&\sum\limits_{i=1}^n C_n^i\sum\limits_{j=0}^iC_i^j\begin{Bmatrix}k\\j\end{Bmatrix}j!\&\sum\limits_{i=1}^n \frac{n!}{(n-i)!}\sum\limits_{j=0}^i\frac{\begin{Bmatrix}k\\j\end{Bmatrix}}{(i-j)!}\&\sum\limits_{j=0}^{min(n,k)}\begin{Bmatrix}k\\j\end{Bmatrix}\sum\limits_{i=j}^n\frac{n!}{(n-i)!}\frac{1}{(i-j)!}\&\sum\limits_{j=0}^{min(n,k)}\begin{Bmatrix}k\\j\end{Bmatrix}\sum\limits_{i=j}^n\frac{n!}{(n-j)!}\frac{(n-j)!}{(n-i)!(i-j)!}\&\sum\limits_{j=0}^{min(n,k)}\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}\sum\limits_{i=j}^nC_{n-j}^{i-j}\&\sum\limits_{j=0}^{min(n,k)}\begin{Bmatrix}k\\j\end{Bmatrix}\frac{n!}{(n-j)!}2^{n-j}\\end{aligned}\]
至此我们可以通过\(O(k^2)\)处理第二类斯特林数达到\(O(n^2)\)通过此题

Code

更多斯特林数及反演的姿势\(\Longrightarrow\)点这里

#include<bits/stdc++.h>
typedef int LL;
const LL maxn=5e3+9,mod=1e9+7,inv2=500000004;
inline LL Pow(LL base,LL b){
    LL ret(1);
    while(b){
        if(b&1) ret=1ll*ret*base%mod; base=1ll*base*base%mod; b>>=1;
    }return ret;
}
LL ans[maxn][maxn];
inline void Fir(LL n){
    ans[1][1]=1;
    for(LL i=2;i<=n;++i)
        for(LL j=1;j<=i;++j)
            ans[i][j]=1ll*(ans[i-1][j-1]+1ll*j*ans[i-1][j]%mod)%mod;
}
inline LL Get(LL l,LL r){
    LL ret(1);
    for(LL i=l;i<=r;++i) ret=1ll*ret*i%mod;
    return ret;
}
LL n,k,ret;
int main(){
    scanf("%d%d",&n,&k);
    Fir(k);
    for(LL j=0,val1=1,val2=Pow(2,n);j<=k;++j,val1=1ll*val1*(n-j+1)%mod,val2=1ll*val2*inv2%mod)
        ret=1ll*(ret+1ll*ans[k][j]*val1%mod*val2%mod)%mod;
    printf("%d ",ret);
}

CF932E Team Work(第二类斯特林数)

原文:https://www.cnblogs.com/y2823774827y/p/10711180.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!