union

Posted andromeda-galaxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了union相关的知识,希望对你有一定的参考价值。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
const int mod=1e9+7;
int A[maxn];
int B[maxn];
int quick(int x,int n)
    int ans=1;
    while(n)
        if(n&1) ans=1ll*ans*x%mod;
        x=1ll*x*x%mod;
        n=n/2;
     return ans;

void make()
    int n=maxn-1;
    A[0]=1; for(int i=1;i<=n;i++) A[i]=1ll*A[i-1]*i%mod;
    B[n]=quick(A[n],mod-2);
    B[0]=1; for(int i=n-1;i>=1;i--) B[i]=1ll*B[i+1]*(i+1)%mod;

int C(int n,int x)
    return 1ll*A[n]*B[x]%mod*B[n-x]%mod;

int main()
    make();
    int n,k;  scanf("%d %d",&n,&k);
    int a1; scanf("%d",&a1);
    int a2; scanf("%d",&a2);
    int a3; scanf("%d",&a3);
    int a4; scanf("%d",&a4);
    int a5; scanf("%d",&a5);
    int a6; scanf("%d",&a6);
    int a7; scanf("%d",&a7);
    int tot=0;
    int ans=0;
    for(int x=a1;x<=k;x++)
        for(int y=a2;y<=k;y++)
            for(int z=a3;z<=k;z++)
                if(x+y+z!=k) continue;
                int w=min(min(x,y),z);
                for(int c=0;c<=w;c++)
                    int num=C(n,c);
                    int nn=n-c;
                    for(int d=0;d<=min(x,y)-c;d++)
                        for(int e=0;e<=min(y,z)-c;e++)
                            for(int f=0;f<=min(z,x)-c;f++)
                                    //tot++;
                                int pace = 1ll*num%mod*C(nn,d+e+f)%mod*C(d+e+f,d)%mod*C(e+f,f)%mod;
                                int nnn=nn-d-e-f;
                                int xx=x-c-d-f;
                                int yy=y-c-e-d;
                                int zz=z-c-f-e;
                                if(xx<0 || yy<0 || zz<0 ) continue;
                                int ans1=1ll*pace%mod*C(nnn,xx+yy+zz)%mod*C(xx+yy+zz,xx)%mod*C(yy+zz,zz);
                                if( d+e+f+xx+yy+c>=a4 && d+e+f+yy+zz+c>=a5 && d+f+e+zz+xx+c>=a6 && c+e+d+f+xx+yy+zz>=a7)
                                    ans+=ans1;
                                    ans=ans%mod;
                                
                            
                        
                    
                
            
        
    
    //cout<<tot<<endl;
    printf("%d\n",ans);

 

以上是关于union的主要内容,如果未能解决你的问题,请参考以下文章

left jionjion,UnionUnion All有什么区别?

unionunion all distinct的区别和用途

SQL Server常用查询

连接查询

MySQL高级SQL语句(下)

sql语句优化原则