zoukankan      html  css  js  c++  java
  • 2021牛客暑期多校训练营4

    比赛链接:https://ac.nowcoder.com/acm/contest/11255

    C,F,I,J,排名还是不好;很多数学题,不太擅长,呆坐了几个小时。

    G:Product

    #include<cstdio>
    #include<cstring>
    using namespace std;
    #define ll long long
    const int N=55,M=2605,mod=998244353;
    int n,k,D,dp[N][M],jc[M],jcn[M],ans;
    int pw(int n,int k)
    {
        int ret=1,mul=n;
        while(k)
        {
            if(k&1)ret=(ll)ret*mul%mod;
            mul=(ll)mul*mul%mod;
            k>>=1;
        }
        return ret;
    }
    int C(int n,int k)
    {
        return (ll)jc[n]*jcn[k]%mod*jcn[n-k]%mod;
    }
    void init()
    {
        //int r=n*k+1;//+1,for k=0
        int r=51*51;///
        jc[0]=1;
        for(int i=1;i<=r;i++)jc[i]=(ll)jc[i-1]*i%mod;
        jcn[r]=pw(jc[r],mod-2);
        for(int i=r-1;i>=1;i--)jcn[i]=(ll)jcn[i+1]*(i+1)%mod;
        jcn[0]=1;
    
        dp[0][0]=1;
        for(int i=1;i<=n;i++)
            for(int j=0,d=i*(k-1);j<=d;j++)
                for(int l=0;l<k&&l<=j;l++)
                {
                    dp[i][j]=(dp[i][j]+(ll)dp[i-1][j-l]*C(j,l)%mod)%mod;
                }
    }
    int main()
    {
        scanf("%d%d%d",&n,&k,&D);
        init();
        ans=pw(n,D+n*k);
        for(int i=1;i<=n;i++)
        {
            int sgn=1;if(i&1)sgn=mod-1;
            int mul=1;
            for(int j=0,d=(k-1)*i;j<=d;j++)
            {
                ans=(ans+(ll)sgn*C(n,i)%mod*dp[i][j]%mod*pw(n-i,D+n*k-j)%mod*mul%mod)%mod;///
                mul=(ll)mul*(D+n*k-j)%mod*pw(j+1,mod-2)%mod;
            }
        }
        for(int i=D+1,d=D+n*k;i<=d;i++)
            ans=(ll)ans*pw(i,mod-2)%mod;
        printf("%d
    ",ans);
        return 0;
    }
    me
  • 相关阅读:
    servlet异步处理机制
    分析logfilter+session
    java web后台工作原理
    xml的作用
    本学期学习目标 企业级运用和互联网运用的区别
    JAVA EE 思维导图
    第六周
    第五周
    第四周作业
    javaee第三周
  • 原文地址:https://www.cnblogs.com/Zinn/p/15077109.html
Copyright © 2011-2022 走看看