NYOJ:206 矩形个数(数学)

来源:互联网 发布:资深淘宝美工招聘 编辑:程序博客网 时间:2024/04/29 06:39

矩形的个数

时间限制: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
来源
FOJ月赛-2007年3月
上传者
ACM_赵铭浩



思路:

先考虑只有一行的情况,假设有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

该题数据大,得用long long

<pre name="code" class="cpp">#include <stdio.h>int main(){long long a,b;while(scanf("%lld%lld",&a,&b)!=EOF){a=(a*a+a)/2;b=(b*b+b)/2;long long sum=a*b;printf("%lld\n",sum);}return 0;}


0 0