uva 11806 Cheerleaders 容斥原理

来源:互联网 发布:恶意软件系统 编辑:程序博客网 时间:2024/06/05 10:16

暂时登不了uva ,就不挂题目链接了


为了表示容斥原理的渣图:(请见谅)



<span style="font-size:18px;">int n,m,k;const int maxk=500+10;const int mod=1000007;int C[maxk][maxk];void pre(){    for(int i=0;i<maxk;i++)//要从0这里开始,!!!保证万无一失    {        C[i][0]=C[i][i]=1;        for(int j=1;j<=i-1;j++)        {            C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;        }    }}int main(){    int T,kase=0;    pre();    scanf("%d",&T);    while(T--)    {        scanf("%d%d%d",&n,&m,&k);        int ans=0;        for(int st=0;st<16;st++)  // 2^4=16 种状态;        {            int r=n,c=m,cnt=0;            if(st&1)  r--,cnt++;            if(st&2)  r--,cnt++;            if(st&4)   c--,cnt++;            if(st&8)   c--,cnt++;            if(cnt&1)  ans=(ans-C[ r*c][k]+mod) %mod;            else  ans=(ans+C[r*c][k])%mod;        }        printf("Case %d: %d\n",++kase,ans);    }    return 0;}</span>


<span style="font-size:18px;">#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>#include<climits>#include<queue>#include<vector>#include<map>#include<sstream>#include<set>#include<stack>#include<utility>#pragma comment(linker, "/STACK:102400000,102400000")#define PI 3.1415926535897932384626#define eps 1e-10#define sqr(x) ((x)*(x))#define FOR0(i,n)  for(int i=0 ;i<(n) ;i++)#define FOR1(i,n)  for(int i=1 ;i<=(n) ;i++)#define FORD(i,n)  for(int i=(n) ;i>=0 ;i--)#define  lson   num<<1,le,mid#define rson    num<<1|1,mid+1,ri#define MID   int mid=(le+ri)>>1#define zero(x)((x>0? x:-x)<1e-15)#define mk    make_pair#define _f     first#define _s     secondusing namespace std;const int INF =0x3f3f3f3f;//const int maxn=    ;//const int maxm=    ;//const int INF=    ;typedef long long ll;const ll inf =1000000000000000;//1e15;//ifstream fin("input.txt");//ofstream fout("output.txt");//fin.close();//fout.close();//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);//by yskysker123</span>


0 0
原创粉丝点击