poj1191 棋盤分割 (DP)

2021-06-08 00:09:12 字數 590 閱讀 6764

//題目意思:在乙個8*8的棋盤中要劃分成n塊,並且方差最小

//解題思路:用乙個5維的陣列來記錄狀態st[k][x1][y1][x2][y2],表示在第k次時從(x1,y1)到(x2,y2)的矩形切出的和的平方的和(就是已經分兩塊了,只是這個陣列沒表示從**切)。然後遞迴到前面一次,選擇兩個中的一塊繼續遞迴。

//0ms ac,**如下:

#include#include#includeusing namespace std;

#define min(a,b) ((a)<(b)) ? (a) : (b)

const int m =8;

int n;

int num[m+1][m+1]=;//記錄各個格仔的值

int sum[m+1][m+1]=;//記錄(0,0)到(x,y)矩形的和

int st[15][m+1][m+1][m+1][m+1];

int sumfun(int x1,int y1,int x2,int y2)//返回矩形和的平方

int dp(int k,int x1,int y1,int x2,int y2)

else

{ for(i=x1;i

poj 1191 棋盤分割(dp

題意 將乙個 的棋盤 每個單元正方形有個分值 沿直線 豎或橫 割掉一塊,留下一塊,對留下的這塊繼續這樣操作,總共進行n 1次,得到n塊 1 n 15 矩形,每個矩形的分值就是單元正方形的分值的和,問這n個矩形的最小均方差。此題中,均方差比較,等價於方差比較,等價於平方和比較。狀態 dp x1 y1 ...

poj1191 棋盤分割 (DP)

題目意思 在乙個8 8的棋盤中要劃分成n塊,並且方差最小 解題思路 用乙個5維的陣列來記錄狀態st k x1 y1 x2 y2 表示在第k次時從 x1,y1 到 x2,y2 的矩形切出的和的平方的和 就是已經分兩塊了,只是這個陣列沒表示從 切 然後遞迴到前面一次,選擇兩個中的一塊繼續遞迴。0ms a...

poj 1191 棋盤分割

棋盤分割 time limit 1000ms memory limit 10000k total submissions 10807 accepted 3798 description 將乙個 的棋盤進行如下分割 將原棋盤割下一塊矩形棋盤並使剩下部分也是矩形,再將剩下的部分繼續如此分割,這樣割了 n...