ZJNU 2345

明显,总共有n*m格,已经涂了k格

所以剩下n*m-k格

如果n*m-k<=k,即k已经占用了大于等于一半的格子,显然答案为0

否则

剩下的格子中取k+1,k+2...n*m-k格均可

取组合数求解,所以答案为

但因为组合数下标太大

可以处理杨辉三角(推荐)

或者处理因子

或者使用Python或者Java等等

#include<stdio.h>
const int mod=111111;
int C[1005][1005];
int main(){
    int i,j,n,m,k,ans=0;
    scanf("%d%d%d",&n,&m,&k);
    C[0][0]=1;
    C[0][1]=1;
    C[1][1]=1;
    for(i=2;i<=n*m-k;i++){
        C[0][i]=C[i][i]=1;
        for(j=1;j<i;j++)
            C[j][i]=(C[j-1][i-1]+C[j][i-1])%mod;
    }
    for(i=k+1;i<=n*m-k;i++)
        ans=(ans+C[i][n*m-k])%mod;
    printf("%d
",ans);
    
    return 0;
}
原文地址:https://www.cnblogs.com/stelayuri/p/12238896.html