递推 N矩形问题

时间:2023-03-09 00:09:01
递推 N矩形问题

Description

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

Input

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

Output

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

Sample Input

2
1 2
2 4

Sample Output

3
30 解题思路:
两个对角点确定一个矩形
寻找每行节点与之不同行不同列的节点 从左到右,从上到下,依次寻找, 得公式 num=n*(n+1)/2+m*(m+1)/2
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int n,m,i;
scanf("%d",&i);
while(i--)
{
scanf("%d%d",&n,&m);
printf("%d\n",(n*n+n)/2*(m*m+m)/2);
}
return 0;
}