企业网站建设与推广,spring mvc 做网站,美容产品网站建设多少钱,wordpress怎么改登陆不了题目
有一个nm方格的棋盘#xff0c;求其方格包含多少正方形、长方形#xff08;不包含正方形#xff09;。
输入输出格式
输入格式
一行#xff0c;两个正整数n,m#xff08;n≤5000,m≤5000#xff09;。
输出格式
一行#xff0c;两个正整数#xff0c;分别表…题目
有一个n×m方格的棋盘求其方格包含多少正方形、长方形不包含正方形。
输入输出格式
输入格式
一行两个正整数n,mn≤5000,m≤5000。
输出格式
一行两个正整数分别表示方格包含多少正方形、长方形不包含正方形。
输入输出样例
输入样例
2 3
输出样例
8 10
解析
思路一统计一个n*m的矩形里有多少个正方形长方形。要明确正方形和长方形都是矩形那么n*m的矩形里的矩形数正方形数长方形数
∵ 长方形长不等于宽
∴ 子长方形的长宽是由原矩形长宽减去不同数而得即(n-b)*(m-a) (a≠b)
∵正方形长等于宽
∴子正方形构成的矩阵的长宽由原矩形长宽减去相同数而得即(n-b)*(m-a) (ab)
代码
#includeiostream
using namespace std;
long long n,m,a1,a2;
int main(){cinnm;for(int i0;in;i){for(int j0;jm;j){if(ij){//ij此时为正方形a1(n-i)*(m-j);}else{a2(n-i)*(m-j);}}}couta1 a2;return 0;
}
思路二
一、算正方形的个数
如果我们固定了正方形的右下角(i,j),此时可能的正方形的个数为min(i,j)所以可以枚举右下角计算此时答案求和即可。
二、算长方形个数
其实算长方形并不常见但算矩形应该经常遇到所以这里可以先算矩形再联系第一个问题那答案就转化为矩形个数-正方形个数。像求解正方形个数一样固定矩形右下角(i,j),显然此时矩形个数为i*j同理求和即可。
代码
#includeiostream
#includecmath
using namespace std;
long long n,m,a1,a2;
int main(){cinnm;for(int i0;in;i){for(int j0;jm;j){a1min(i,j);//正方形个数a2i*j; //矩形个数}}couta1 a2-a1;return 0;
}