矩形的个数(没搞懂)

矩形的个数

时间限制: 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

  1. 先考虑只有一行的情况,假设有b列 ,可以发现矩形长为b的有1个,b-1有2个,一直到长度为1,有b个  
  2.     则这有(b+b-1+...+2+1)  
  3.     列则一样的情况,(a+a-1+...+2+1)。  
  4.     那么总共有(b+b-1+...+2+1)*(a+a-1+...+2+1)  
  5.     =(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;
}


猜你喜欢

转载自blog.csdn.net/nanfengzhiwoxin/article/details/80171876
今日推荐