[2016鍖椾含闆嗚娴嬭瘯璧?7]crash鐨勬父鎴?[缁勫悎鏁?鏂壒鏋楁暟+鎷夋牸鏈楁棩鎻掑€糫

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[2016鍖椾含闆嗚娴嬭瘯璧?7]crash鐨勬父鎴?[缁勫悎鏁?鏂壒鏋楁暟+鎷夋牸鏈楁棩鎻掑€糫相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/%e5%8d%9a%e5%ae%a2' title='鍗氬'>鍗氬   type   const   namespace   娴嬭瘯   memset   http   article   鍥剧墖   

Description

鎶€鏈垎浜浘鐗? src=

Solution

鏍稿績鎬濇兂鏄妸缁勫悎鏁板綋鎴愪竴涓鎬殑澶氶」寮忥紝鐒跺悗鎷夋牸鏈楁棩鎻掑€笺€傘€傦紱鍝﹀浜嗭紝杩樿鐢ㄥ埌绗簩绫绘柉鐗规灄鏁帮紙灏辨槸鎶婅嫢骞蹭釜鐞冩斁鍒拌嫢骞蹭釜鐩掑瓙锛夌殑涓€涓叕寮忥細

$x^{n}=sum _{i=0}^{n}C(n,i)*i!*S(i,x)$

鍥磋澶т浆鍗氬锛坬aq鍏紡澶毦鎵撲簡锛?/span>

Code

 
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
const int N=310;
ll fac[N],finv[N],inv[N],S[N][N],inv2;
int n,m,k;
ll C(int x,int y){return x<0||y<0||x-y<0?0:fac[x]*finv[y]%mod*finv[x-y]%mod;}
ll ksm(ll x,int k){ll re=1;while (k){if (k&1) re=re*x%mod;k>>=1;x=x*x%mod;}return re;}
 
ll a[N];
void geta(int k)
{
    memset(a,0,sizeof(a));
    a[0]=1;
    for (int i=0;i<k;a[0]=0,i++) 
        for (int j=i+1;j;j--) 
            a[j]=(a[j-1]-i*a[j]%mod+mod)%mod;
    for (int i=0;i<=k;i++) a[i]=a[i]*finv[k]%mod;
}
 
ll bin[N],pnm[N];
void pre(int k)
{
    pnm[0]=1;for (int i=1;i<=k;i++) pnm[i]=pnm[i-1]*(n+m)%mod;
    bin[0]=1;for (int i=1;i<=k;i++) bin[i]=bin[i-1]*(mod-2)%mod; 
}
ll f[N];
ll ans;
int main()
{
    inv2=ksm(2,mod-2);
    inv[0]=inv[1]=fac[0]=fac[1]=finv[0]=finv[1]=1;
     
    for (int i=2;i<=300;i++) fac[i]=fac[i-1]*i%mod,inv[i]=(mod-mod/i)*inv[mod%i]%mod;
    for (int i=2;i<=300;i++) finv[i]=finv[i-1]*inv[i]%mod;
     
    S[0][0]=1;
    for (int i=1;i<=300;i++) for (int j=1;j<=i;j++) 
    S[i][j]=(S[i-1][j-1]+S[i-1][j]*j)%mod;
     
    int T;
    scanf("%d",&T); 
    while (T--)
    {
        scanf("%d%d%d",&n,&m,&k);
        ans=0;
        pre(k);geta(k);
        ll cnt=ksm(2,m);
        for (int i=0;i<=k;i++)
        {
            ll s=0,Cmj=1,m_j=cnt;
            for (int j=0;j<=i;j++)
            {
                s+=S[i][j]*fac[j]%mod*Cmj%mod*m_j%mod;
                Cmj=Cmj*(m-j)%mod*inv[j+1]%mod;
                m_j=m_j*inv2%mod;           
            }
            f[i]=s%mod;
        }
        for (int i=0;i<=k;i++)
        {
            ll s=0;
            for (int t=0;t<=i;t++) s+=C(i,t)*bin[i-t]%mod*pnm[t]%mod*f[i-t]%mod;
            ans+=s%mod*a[i]%mod;
        }
        printf("%lld
",ans%mod);
    }
}

 

以上是关于[2016鍖椾含闆嗚娴嬭瘯璧?7]crash鐨勬父鎴?[缁勫悎鏁?鏂壒鏋楁暟+鎷夋牸鏈楁棩鎻掑€糫的主要内容,如果未能解决你的问题,请参考以下文章

鐢宠杩涘害 | 澶ч檰鏈鐢熸柀鑾?Microsoft 鍖椾含瀹炰範Offer

iOS鎬ц兘娴嬭瘯瀹炴垬-instruments

Jmeter 缂栧啓鎺ュ彛娴嬭瘯鐢ㄤ緥閬囧埌鐨勯棶棰樺強瑙e喅鍔炴硶

鎬ц兘娴嬭瘯涔嬫柊涓€浠f湇鍔″櫒鎬ц兘娴嬭瘯宸ュ叿Gatling