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


    题目

    CF932E Team Work

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

    做法

    [egin{aligned}\ &sumlimits_{i=1}^n C_n^ii^k\ &sumlimits_{i=1}^n C_n^isumlimits_{j=0}^iC_i^jegin{Bmatrix}k\jend{Bmatrix}j!\ &sumlimits_{i=1}^n frac{n!}{(n-i)!}sumlimits_{j=0}^ifrac{egin{Bmatrix}k\jend{Bmatrix}}{(i-j)!}\ &sumlimits_{j=0}^{min(n,k)}egin{Bmatrix}k\jend{Bmatrix}sumlimits_{i=j}^nfrac{n!}{(n-i)!}frac{1}{(i-j)!}\ &sumlimits_{j=0}^{min(n,k)}egin{Bmatrix}k\jend{Bmatrix}sumlimits_{i=j}^nfrac{n!}{(n-j)!}frac{(n-j)!}{(n-i)!(i-j)!}\ &sumlimits_{j=0}^{min(n,k)}egin{Bmatrix}k\jend{Bmatrix}frac{n!}{(n-j)!}sumlimits_{i=j}^nC_{n-j}^{i-j}\ &sumlimits_{j=0}^{min(n,k)}egin{Bmatrix}k\jend{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);
    }
    
  • 相关阅读:
    在C#中如何使用资源的方法
    C#调用windows API的一些方法
    Uml学习-类图简介
    Uml学习-用例建模简介
    sqlserver中DATE类型的数据转化 CONVERT
    mysql database和schema区别
    nginx buffer
    django pk 和id用法
    sed正则
    kong 插件开发分析
  • 原文地址:https://www.cnblogs.com/y2823774827y/p/10711180.html
Copyright © 2020-2023  润新知