HDU 2524 矩形A + B(矩阵)
来源:互联网 发布:大道无形 小千 知乎 编辑:程序博客网 时间:2024/06/06 03:04
点击打开链接
分析:应该是简单题一个吧。
用矩阵来分析一下题目。
设一矩阵d[i,j],d[i,j]表示为网格grid[i,j]中,所有矩形含有第[i,j]此格的总数。
d的其中一些数据为:
1
2
3
4
1
1
2
3
4
2
2
4
6
8
3
3
6
9
12
4
4
8
12
16
发现是很有规律的,值等于行号乘列号。并且每一行(列)都是一个等差数列。
继续说下去的时候,先加入一个函数g(n,m),
g(n,m) = d[n,1]+d[n,2]+d[n,3]+...+d[n,m] = (d[n,1]+d[n,m])*m/2
简单点说,就是d矩阵里面的第n行,前m个和。
好了,然后再看另一个矩阵sum[i,j],sum[i,j]就是题目要求的答案。
1
2
3
4
1
1
3
6
10
2
3
9
18
30
3
6
18
36
60
4
10
30
60
100
再次新发现,sum[i,j]的值也是有规律的。例如:sum[3,3] = g(3,3) + g(2,3) + g(1,3)。
所以得到
sum[n,m] = g(1,m) + g(2,m) + g(3,m) + ... + g(n,m)
好了,有这个公式可以直接代码了。
#include <stdio.h>int main(){ int t,n,m; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); printf("%d\n",n*(n+1)*m*(m+1)/4); } return 0;}
- HDU 2524 矩形A + B(矩阵)
- HDU 2524 矩形A + B(dp)
- HDU 2524 矩形A + B
- HDU 2524 矩形A + B
- Hdu 2524 - 矩形A+B
- HDU 2524 矩形A + B
- hdu-2524-矩形A + B
- hdu 2524 矩形A + B
- hdu 2524 矩形A + B
- hdu 2524 矩形 A+B
- hdu 2524矩形A + B
- 矩形A + B(HDU 2524)
- hdu 2524 矩形a+b
- HDU 2524 矩形A + B
- hdu 2524 矩形A + B (找规律)
- HDU 2524 矩形A + B(有趣递推)
- hdu 2524 矩形A + B(递推)
- HDU 2524 矩形A + B(找规律)
- UVa 10020 - Minimal coverage
- hdu 2502 月之数(水)
- UVa 311 - Packets
- UVa 10026 - Shoemaker's Problem
- UVa 10700 - Camel trading
- HDU 2524 矩形A + B(矩阵)
- UVa 10340 - All in All
- hdu 2503 a/b + c/d(水)
- zoj1402-------------Magnificent Meatballs
- UVa 10487 - Closest Sums
- POJ 1548 最小路径覆盖
- UVa 10706 - Number Sequence
- hdu 1205 吃糖果(水)
- UVa 10057 - A mid-summer night's dream.