HDoj-2524 - 矩形A+B

Problem Description

给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格.

Input

第一行输入一个t, 表示有t组数据,然后每行输入n,m,分别表示网格的高和宽 ( n < 100 , m < 100).

Output

每行输出网格中有多少个矩形.

Sample Input

2
1 2
2 4

Sample Output

3
30
#include <stdio.h>
int main()
{
   int t,n,m;
   int i,j,k;
   int sum1,sum2;
    scanf("%d",&t);

    for(i=1;i<=t;i++)
    {
       scanf("%d %d",&n,&m);
       sum1 = sum2 = 0;
       for(j=1;j<=n;j++)
            sum1 += j;
        for(j=1;j<=m;j++)
            sum2 += j;

      printf("%d\n",sum1*sum2);
     }
return 0;

}

时间: 2024-10-07 17:34:04

HDoj-2524 - 矩形A+B的相关文章

hdoj 2524 矩形A + B【递推】

矩形A + B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5187    Accepted Submission(s): 4034 Problem Description 给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格. Input 第一行输入一个t, 表示有t组数据,然后每行输入n,m,

HDOJ(HDU) 2524 矩形A + B(推导公式、)

Problem Description 给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格. Input 第一行输入一个t, 表示有t组数据,然后每行输入n,m,分别表示网格的高和宽 ( n < 100 , m < 100). Output 每行输出网格中有多少个矩形. Sample Input 2 1 2 2 4 Sample Output 3 30 此方格其实就是求其中所有格子数,如果按宽度来算的话,1,2,3,-m,种情况,对每一种情况,有(1+2

hdu 2524 矩形 A+B

http://acm.hdu.edu.cn/showproblem.php?pid=2524 提示: 当只有一行的时候,矩形的个数是m+(m-1)+-+1=m*(m-1)/2; 所以当有n行的时候就是n个m行所以就是m*(m-1)/2*n*(n-1)/2; #include <iostream> using namespace std; int main() { int t,n,m; cin>>t; while(t--) { cin>>m>>n; cout&

HDU 2524 矩形A + B 解题心得

原题: Description 给你一个高为n ,宽为m列的网格,计算出这个网格中有多少个矩形,下图为高为2,宽为4的网格.  Input 第一行输入一个t, 表示有t组数据,然后每行输入n,m,分别表示网格的高和宽 ( n < 100 , m < 100). Output 每行输出网格中有多少个矩形. Sample Input 2 1 2 2 4 Sample Output 3 30 我的代码: #include<iostream> #include<cstdio>

HDU -2524 矩形A + B

找规律题,这种题目比较巧妙,要仔细观察找出规律 1. 假设只有一行,一共有n列,那么由一个小矩形构成的矩形个数为n, 由两个小矩形构成的矩形个数为 n - 1个 .... 由 n 个小矩形构成的矩形个数为1个,所以所有的矩形个数就是 n + (n - 1) + (n - 2) + ...+ 2 + 1 = n * (n + 1) / 2 2. 同理假设只有一列, 可以构成的矩形数目也是 n * (n + 1) / 2 所以, 总的矩形个数,就是行构成的矩形总数 * 列构成的矩形总数 代码如下 1

HUD 2524 矩形A + B

原题链接:点击此处 公式:sum=len*(len+1)/2*wid*(wid+1)/2; 源代码: #include <iostream> #include <stdio.h> using namespace std; int main() { int ti,len,wid,sum; scanf("%d",&ti); while(ti--) { scanf("%d %d",&len,&wid); sum=len*(l

HDOJ 1828 线段树 矩形周长并

链接: http://acm.hdu.edu.cn/showproblem.php?pid=1828 代码: 1 #include <map> 2 #include <set> 3 #include <cmath> 4 #include <queue> 5 #include <stack> 6 #include <cstdio> 7 #include <string> 8 #include <vector> 9

hdoj - 1506 直方图中最大的矩形

Problem Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base line. The rectangles have equal widths but may have different heights. For example, the figure on the left shows the histogram that consists of

线段树+扫描线 HDOJ 5091 Beam Cannon

题目传送门 1 /* 2 题意:给出若干个点的坐标,用一个矩形去覆盖,问最多能覆盖几个点 3 线段树+扫描线:思路是先建一棵以[y, y + h]的树,左右儿子[x, x + w] 4 以这棵树为范围,从左到右扫描,更新点数,x的+1, x+w的-1(超过矩形范围) 5 ans = 每次更新时所覆盖点数的最大值 6 */ 7 #include <cstdio> 8 #include <algorithm> 9 #include <iostream> 10 #includ

数学 HDOJ 5301 Buildings

题目传送门 1 /* 2 题意:n*m列的矩阵,删除一个格子x,y.用矩形来填充矩阵.且矩形至少有一边是在矩阵的边缘上. 3 求满足条件的矩形填充方式中面积最大的矩形,要使得该最大矩形的面积最小. 4 分析:任何矩形都可以分为宽度为1的小矩形,所以只考虑矩形的可以的最小长度即可. 5 讨论方法:这里 (我不会...) 6 */ 7 #include <cstdio> 8 #include <algorithm> 9 #include <cstring> 10 using