标签:
1 2 3 2
3 18
dp:
#include<bits/stdc++.h>
using namespace std;
long long dp[1100][1100];
int main(){
int A,B,i,j,k;
for(i=1;i<1010;i++){
for(j=1;j<1010;j++){
dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+i*j;
}
}
while(scanf("%d%d",&A,&B)!=EOF){
printf("%lld\n",dp[A][B]);
}
return 0;
}
公式:
/*先考虑只有一行的情况,假设有b列 ,可以发现矩形长为b的有1个,b-1有2个,一直到长度为1,有b个
则这有(b+b-1+...+2+1)
列则一样的情况,(a+a-1+...+2+1),那么有一行,长度为b的有b*a,两行有b*(a-1)
。。。
那么总共有(b+b-1+...+2+1)*(a+a-1+...+2+1)
=(b+1)*b/2 * (a+1)*a/2
*/
#include <stdio.h>
int main() {
float a, b;
while ( scanf ( "%f%f", &a, &b ) + 1 )
printf ( "%.0f\n", ( a + 1 ) *a * ( b + 1 ) *b / 4 );
}
标签:
原文地址:http://www.cnblogs.com/chengsheng/p/4526225.html