zoukankan      html  css  js  c++  java
  • UVA

    Bryce1010模板

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2906

    /*
    分成四类讨论,A代表第一行不填,B代表最后一行不填,C代表第一列不填,D代表最后一列不填
    S代表全集,利用容斥原理
    
    */
    #include <bits/stdc++.h>
    
    using namespace std;
    #define ll long long
    const ll MAXN=500;
    const ll MOD=1000007;
    ll C[MAXN+20][MAXN+20];
    
    void init()
    {
        memset(C,0,sizeof(C));
        C[0][0]=1;
        for(ll i=0;i<=MAXN;i++)
        {
            C[i][0]=C[i][i]=1;
            for(ll j=1;j<i;j++)
            {
                C[i][j]=(C[i-1][j]+C[i-1][j-1])%MOD;
            }
        }
    
    }
    
    
    
    int main()
    {
        init();
    //#ifndef online_jduge
    //    freopen("in.txt","r",stdin);
    //#endif // online_jduge
        ll n,m,k;
        ll t,Case=1;
        cin>>t;
    
        while(t--)
        {
            cin>>n>>m>>k;
            ll r=m,c=n,b=0,sum=0;
            init();
            //枚举16种分类S表示全集,A表示第一行,B表示最后一行,C表示第一列,D表示最后一列
            for(ll i=0;i<16;i++)
            {
                b=0,r=m,c=n;
                if(i&1)
                {
                    r--,b++;
                }
                if(i&2)
                {
                    r--,b++;
                }
                if(i&4)
                {
                    c--,b++;
                }
                if(i&8)
                {
                    c--,b++;
                }
                if(b&1)//奇数项 -
                {
                    sum=(sum+MOD-C[r*c][k])%MOD;
                }
                else//偶数项 +
                {
                    sum=(sum+C[r*c][k])%MOD;
                }
            }
            cout<<"Case "<<Case++<<": "<<sum<<endl;
        }
        //cout << "Hello world!" << endl;
        return 0;
    }
    
  • 相关阅读:
    三数之和
    167
    二分搜索树
    687
    索引堆
    二分查找 leetcode704
    leetcode 56合并区间 java
    leetcode 1046
    堆的数据结构java
    leetcode 493
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9386869.html
Copyright © 2011-2022 走看看