题目的要求是均方差最小,按照均方差的公式,可以转化为最后分割的每个矩形的平方和最小。设f(k, x1, y1, x2, y2)左上角为x1,y1,右下角为x2,y2的矩形在切割k次之后每一块的平方和。s[x1][y1][x2][y2]左上角为x1,y1,右下角为x2,y2的矩形的平方和。
由此可以写出状态转移方程:
f(k, x1, y1, x2, y2) = min{ min(f(k-1, x1, y1, a, y2)+s[a+1][y1][x2][y2], f(k-1, a, y1, x2, y2)+s[x1][y1][a][y2]) (x1<=a<x2) (横切), min(f(k-1, x1, y1, x2, b)+s[x1][b+1][x2][y2], f(k-1, x1, b+1, x2, y2)+s[x1][y1][x2][b]) (y1<=b<y2) (纵切)}
初始状态为:f(0, 0, 0, 7, 7) = 整块棋盘的平方和。(参考《算法艺术与信息学竞赛》P116)
动态规划 :POJ 1191 棋盘分割
最新推荐文章于 2010-10-08 00:38:00 发布