AcWing 321 棋盘分割
题目描述: 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘。(每次切割都只能沿着棋盘格子的边进行) 原棋盘上每一格有一个分值,一块矩形棋盘的总分为其所含各格分值之和。 现在需要把棋盘按上述规则分割成n块矩形棋盘,并使各矩形棋盘总分的均方差最小。 均方差 ,其中平均值 ,xixi为第 i 块矩形棋盘的总分。 请编程对给出的棋盘及n,求出均方差的最小值。 输入格式 第1行为一个整数n。 第2行至第9行每行为8个小于100的非负整数,表示棋盘上相应格子的分值。每行相邻两数之间用一个空格分隔。 输出格式 输出最小均方差值(四舍五入精确到小数点后三位)。 数据范围 1<n<15 输入样例: 3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 3 输出样例: 1.633 分析: 本题是二维区间DP问题。应该说本题的题意表述不太清楚,只能沿着棋盘格子的边进行切割这句话太抽象,题目想要表达的意思是对8*8的棋盘,横着切一刀或者竖着切一刀,切完后选择留其中的一块继续切割