zoukankan      html  css  js  c++  java
  • uva 11806 Cheerleaders

    我们直接求解不好处理,那么反向考虑,四个边至少有一条边没有解的情况

    ac代码:

    #include <cstdio>
    #include <cstring>
    
    const int N = 500;
    const int MOD = 1000007;
    
    int n, m, k, C[N+10][N+10];
    
    void init () {
    
        for (int i = 0; i < N; i++) {
            C[i][0] = C[i][i] = 1;
            for (int j = 1; j < i; j++)
                C[i][j] = (C[i-1][j-1] + C[i-1][j])%MOD;
        }
    }
    
    int main () {
        init ();
    
        int cas;
        scanf("%d", &cas);
        for (int i = 1; i <= cas; i++) {
            scanf("%d%d%d", &n, &m, &k);
            int ans = 0;
    
            for (int s = 0; s < 16; s++) {
                int cnt = 0, r = n, c = m;
    
                if (s&1) {
                    r--;
                    cnt++;
                }
    
                if (s&2) {
                    r--;
                    cnt++;
                }
    
                if (s&4) {
                    c--;
                    cnt++;
                }
    
                if (s&8) {
                    c--;
                    cnt++;
                }
    
                if (cnt&1)
                    ans = (ans + MOD - C[r*c][k])%MOD;
                else
                    ans = (ans + C[r*c][k])%MOD;
            }
            printf("Case %d: %d
    ", i, ans);
        }
    
        return 0;
    }
  • 相关阅读:
    开始研究web,mark一下
    干掉Unity3D
    mysql NDB
    mysql federated engine
    mysql memory
    mysql merge
    mysql innodb 引擎
    mysql myisam
    mysql 的日志文件
    mysql 的数据文件
  • 原文地址:https://www.cnblogs.com/z1141000271/p/7289596.html
Copyright © 2011-2022 走看看