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
 
分析:这道题目貌似是小学题目,就是多画画,找找规律就可以了 
  因为这道题目给的案例数量是最大是100*100,数据并不大,所以可以采取暴力打表,把所有可能的情况用总结出来的公式快速计算出来并存储在数组中,
  具体案例就输出数组对应的数就可以了。
 
 
我的代码:
#include<iostream>
#include<cstdio>
using namespace std;

int f[110][110];
int main()
{
    f[1][1] = 1;
    for (int i =2; i < 110; i++)
    {
        f[1][i] = f[1][i - 1] + i;
        f[i][1] = f[i - 1][1] + i;
    }
    for (int i = 2; i < 110; i++)
    {
        for (int j = 2; j < 110; j++)
        {
            f[i][j] = f[i][1] * f[1][j];
        }
    }
    
    int t;
    cin >> t;
    while (t--)
    {
        int n, m;
        cin >> n >> m;
        cout << f[n][m] << endl;
    }

    return 0;
}
View Code
原文地址:https://www.cnblogs.com/shawn-ji/p/4696565.html