zoukankan      html  css  js  c++  java
  • BZOJ 4710 容斥原理+dp

    //By SiriusRen
    #include <cstdio>
    using namespace std;
    int n,m,a[1005];
    typedef long long ll;
    ll C[2005][2005],f[2005][2005],g[2005],mod=1000000007ll;
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)scanf("%d",&a[i]);
        for(int i=1;i<=2000;i++){
            C[i][0]=C[i][i]=1ll;
            for(int j=1;j<i;j++)
                C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;
        }
        for(int i=1;i<=n;i++)f[0][i]=1;
        for(int i=1;i<=m;i++)
            for(int j=1;j<=n;j++)
                f[i][j]=f[i-1][j]*C[a[i]+j-1][j-1]%mod;
        for(int i=1;i<=n;i++){
            g[i]=f[m][i];
            for(int j=1;j<i;j++)
                g[i]=((g[i]-C[i][j]*g[j])%mod+mod)%mod;
        }
        printf("%lld
    ",g[n]);
    }





    二刷
    2018.8.1
    //By SiriusRen
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    const int p=1000000007,N=1000050;
    int n,m,fac[N],inv[N],tot,a[N],f[N],finv[N],ans;
    int C(int x,int y){return fac[x]*finv[y]%p*finv[x-y]%p;}
    int pow(int a,int b){int r=1;for(;b;b>>=1,a=a*a%p)if(b&1)r=r*a%p;return r;}
    signed main(){
        fac[0]=fac[1]=inv[0]=inv[1]=finv[0]=finv[1]=1;
        scanf("%lld%lld",&n,&m);
        for(int i=1;i<=m;i++)scanf("%lld",&a[i]),tot+=a[i];
        for(int i=2;i<=tot;i++)
            fac[i]=fac[i-1]*i%p,inv[i]=(p-p/i*inv[p%i])%p,finv[i]=finv[i-1]*inv[i]%p;
        for(int i=1;i<=n;i++){
            f[i]=1;
            for(int j=1;j<=m;j++)f[i]=f[i]*C(a[j]+i-1,i-1)%p;
        }
        for(int i=0;i<n;i++)ans=(ans+(i&1?-1:1)*C(n,i)*f[n-i])%p;
        printf("%lld
    ",(ans+p)%p);
    }
     
  • 相关阅读:
    OpenCascade Ray Tracing Rendering
    Create New Commands in Tcl
    OpenCascade Modeling Algorithms Fillets and Chamfers
    OpenCascade Modeling Algorithms Boolean Operations
    Construction of Primitives in Open Cascade
    Open Cascade Data Exchange STL
    Tcl Tk Introduction
    Open Cascade DataExchange IGES
    Netgen mesh library : nglib
    Hello Netgen
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532026.html
Copyright © 2011-2022 走看看