60 分求助
查看原帖
60 分求助
414386
Isshiki·Iroha楼主2023/9/15 19:49

思路就是先枚举在左下角的矩形放置的个数,再枚举在左上的矩形放置的个数,然后计算。但是wA 了 求助大佬;


int main() {
    C[0][0]=1;fac[0]=1;
    for(int i(1);i<=1000;++i)fac[i]=fac[i-1]*i%Mod;
    for(int i(1);i<=1000;++i)C[i][0]=1;
    for(int i(1);i<=1000;++i){
        for(int j(1);j<=i;++j){
            C[i][j]=(C[i-1][j-1]+C[i-1][j])%Mod;
        }
    }
    read(a,b,c,d,k);
    for(int i(0);i<=Min(k,a,d);++i){
        for(int j(Max(k-i-c,k-d));j<=Min(k-i,a-i,b);++j){
            int l=k-i-j;
            ans=(ans+C[d][i]*C[a][i]*fac[i]%Mod*C[a-i][j]*C[b][j]*fac[j]%Mod*C[d-i][l]*C[c][l]*fac[l]%Mod)%Mod;
        }
    }
    write(ans);
    return 0;
}
2023/9/15 19:49
加载中...