矩形的个数

来源:互联网 发布:阮佳 黄光剑 网络战 编辑:程序博客网 时间:2024/05/01 11:26

矩形的个数

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

样例输出

318

 

题解:主要两个问题

1.ab范围是<=1000,所以结果最大为2505 0025 0000

大于unsignedint的范围

2.原理就是矩阵相乘问题。即n=1+2+3...+a;结果就是:1*n+2*n+3*n+...b*n;

等价于(1+a)*a/2*(1+b)*b/2;

 

程序代码:

#include<stdio.h>

#include<stdlib.h>

int main(){

  long long a,b,s;

  while(scanf("%lld%lld",&a,&b)!=EOF)

  {

    s=a*b*(a+1)*(b+1)/4;

    printf("%lld\n",s);

  }

  system("pause");

  return 0;

}

 

0 0