博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1191 棋盘分割【区间类DP】
阅读量:6821 次
发布时间:2019-06-26

本文共 795 字,大约阅读时间需要 2 分钟。

1>根据公式化简:

其中后者是一个已知数。求均方差的最小值就是求出个个棋盘内各数值的平方和最小值。

2>棋盘分割分四种情况:

竖切(左不动),竖切(右不动),横切(上不动),横切(下不动);

3>状态转移方程:

f(i, x1, y1, x2, y2)表示以(x1, y1),(x2, y2)为四边形对角线的棋盘切割成i块的各块值总平方的最小值;

D(x1, y1, x2, y2)表示棋盘的总分

 

                   _____________ 

                   | f(i-1, x1, a+1, x2, y2)+D(x1, y1, x2, a)   [横切(上不动)]

                   | f(i-1, x1,y1, x2, a)+D(x1, a+1, x2, y2)   [横切(下不动)

f(i, x1, y1, x2, y2)=min| f(i-1,b+1, y1, x2, y2)+D(x1, y1, b1, y2)  [竖切(左不动)]

                   | f(i-1, x1, y1, b, y2)+D(b+1, y1, x2, y2)   [竖切(右不动)]

                   ______________

4>其中的a, b是进行枚举的值。先预处理Dx1, y1, x2, y2)

代码如下:

View Code
/***  POJ 1191 棋盘分割*/#include
#include
#include
int a[9][9], F[15][9][9][9][9];int minx(int a1, int a2, int a3){ int minnum=99999999; if(a1

 

转载于:https://www.cnblogs.com/Hilda/archive/2013/03/02/2939688.html

你可能感兴趣的文章