大矩形分出小矩形 有两种题型:
第一种是小矩形的边不能被覆盖(相当于直接切割),参考acwing题: https://www.acwing.com/problem/content/1229/
假设原矩形的长为a,宽为b:
(1)小正方形的长为m 则可以分出的个数为(a/m)*(b/m)
;
(2)小长方形的长为m,宽为n,则可以分出的个数为(a/m)*(b/n)
;第二种是小矩形的边可以被覆盖,参考洛谷题: https://www.luogu.com.cn/problem/P2241
假设原矩形的长为a,宽为b:
(1)小正方形的长为m,则可以分出的个数为//枚举长和宽 for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(i==j&&i==m) zheng+=(a-i+1)(b-j+1)
(2)小长方形的长为m,宽为n,则可以分出的个数为for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if((i==n&&j==m)||(i==m&&j==n)) chang+=(a-i+1)(b-j+1)