HDU 2524 矩形A + B

欢迎访问diao丝1号的博客!


矩形A + B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3439    Accepted Submission(s): 2618


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
 

Source
 


递推公式 dp[i][j]=dp[i][j-1]+i*(i+1)/2*j;


#include <iostream>
#include <cstdio>
using namespace std;

int m,n;
int dp[110][110];

void ini(){
	for(int i=1;i<=100;i++){
		for(int j=1;j<=100;j++){
			dp[i][j]=dp[i][j-1]+i*(i+1)*j/2;
		}
	}
}

int main(){
	ini();
	int t;
	scanf("%d",&t);
	while(t-- >0){
		scanf("%d%d",&m,&n);
		printf("%d\n",dp[m][n]);
	}
	return 0;
}





posted @ 2013-11-02 19:14  炒饭君  阅读(113)  评论(0编辑  收藏  举报