矩形的个数
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
- 描述
-
在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形。
给出A,B,计算可以从中找到多少个矩形。
- 输入
-
本题有多组输入数据(<10000),你必须处理到EOF为止
输入2个整数A,B(1<=A,B<=1000)
- 输出
-
输出找到的矩形数。
- 样例输入
-
1 2 3 2
- 样例输出
-
3 18
- 先考虑只有一行的情况,假设有b列 ,可以发现矩形长为b的有1个,b-1有2个,一直到长度为1,有b个
- 则这有(b+b-1+...+2+1)
- 列则一样的情况,(a+a-1+...+2+1)。
- 那么总共有(b+b-1+...+2+1)*(a+a-1+...+2+1)
- =(b+1)*b/2 * (a+1)*a/2
。。。上面的解释不是很懂,为什么有这么多个矩形。为什么行列直接乘就可以了??????
#include <iostream> #include <stdio.h> #include <algorithm> using namespace std; int main() { long long a,b,sum; while(~scanf("%lld%lld",&a,&b)) { sum=a*(a+1)*b*(b+1)/4; printf("%lld\n",sum); } return 0; }