zoukankan      html  css  js  c++  java
  • CF961G Partitions

    题目

    什么神仙题啊

    答案非常显然就是

    [sum_{i=1}^nw_i imes sum_{i=1}^niinom{n-1}{i-1}S_2(n-i,k-1) ]

    这是因为考虑到每一个(w_i)的地位都是对等的,于是每一个(w_i)被计算进总答案的系数都是相同的,我们算一下那个系数就好了,显然就是枚举有多少个和当前分到了一组,之后剩下的用第二类斯特林数把剩下的分配到(k-1)组里去就好了

    之后根据第二类斯特林数的容斥形式,我们能把后面的那个柿子变成

    [sum_{j=0}^{k-1}frac{(-1)^j}{j!(k-1-j)!}sum_{i=1}^nfrac{(n-1)!i}{(n-i)!(i-1)!}(k-1-j)^{n-i} ]

    推不动了告辞

    之后就是抄yyb的了

    我们着重搞后面那个柿子,也就是

    [egin{aligned} & sum_{i=1}^nfrac{(n-1)!i}{(n-i)!(i-1)!}(k-1-j)^{n-i}\&=sum_{i=1}^nfrac{(n-1)!(i-1+1)}{(n-i)!(i-1)!}(k-1-j)^{n-i}\&=sum_{i=1}^nfrac{(n-1)!}{(n-i)!(i-1)!}(k-1-j)^{n-i}+sum_{i=1}^nfrac{(n-1)!}{(n-i)!(i-2)!}(k-1-j)^{n-i}\&=sum_{i=1}^nfrac{(n-1)!}{(n-i)!(i-1)!}(k-1-j)^{n-i}+(n-1)sum_{i=1}^nfrac{(n-2)!}{(n-i)!(i-2)!}(k-1-j)^{n-i}\&=sum_{i=0}^{n-1}inom{n-1}{n-i}(k-1-j)^{n-i}1^{i-1}+(n-1)sum_{i=0}^{n-2}inom{n-2}{n-i}(k-1-j)^{n-i}1^{i-2}+(n-1)\&=(k-j)^{n-1}+(n-1)(k-j)^{n-2}\&=(k-j+n-1)(k-j)^{n-2}end{aligned} ]

    最后整体的柿子就是

    [sum_{j=0}^{k-1}frac{(-1)^j}{j!(k-1-j)!}(k-j+n-1)(k-j)^{n-2} ]

    代码

    #include<cstdio>
    #define re register
    const int maxn=2e5+5;
    const int mod=1e9+7;
    inline int ksm(int a,int b) {
    	int S=1;for(;b>0;b>>=1,a=1ll*a*a%mod) if(b&1) S=1ll*S*a%mod;return S;
    }
    int n,k,ans,sum,fac[maxn],ifac[maxn];
    int main() {
    	scanf("%d%d",&n,&k);
    	fac[0]=1;ifac[0]=1;
    	for(re int i=1;i<k;i++) fac[i]=1ll*fac[i-1]*i%mod;
    	ifac[k-1]=ksm(fac[k-1],mod-2);
    	for(re int i=k-2;i>=0;--i) ifac[i]=1ll*ifac[i+1]*(i+1)%mod;
    	for(re int j=0;j<k;j++) {
    		int now=1ll*ifac[j]*ifac[k-1-j]%mod;
    		now=1ll*now*(n+k-j-1)%mod*ksm(k-j,n-2)%mod;
    		ans=(ans+((j&1)?-1:1)*now)%mod;
    	}
    	ans=(ans+mod)%mod;
    	for(re int x,i=0;i<n;i++) scanf("%d",&x),sum=(sum+x)%mod;
    	printf("%d
    ",1ll*sum*ans%mod);
    	return 0;
    }
    
  • 相关阅读:
    sqlzoo练习系列(一)——SELECT 基础
    域名重定向
    自动识别PC端、移动端,并跳转
    Laravel传递多个参数到页面
    Laravel提示The GET method is not supported for this route. Supported methods: POST.错误的解决办法
    Laravel8和之前Laravel版本的区别
    Laravel使用Ajax提交表单报419 unknown status错误的解决方法
    PHP 函数调用之引用地址
    软件开发流程以及开发原则
    php 函数基础
  • 原文地址:https://www.cnblogs.com/asuldb/p/10914682.html
Copyright © 2011-2022 走看看