思路就是先枚举在左下角的矩形放置的个数,再枚举在左上的矩形放置的个数,然后计算。但是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;
}