这题是用四维过的。dp[i][j][h][w],i,j表示蛋糕的左上角,h,w代表高和宽。在dp前还要统计一下每个子蛋糕方块中樱桃的数目。状态转移方程是这样的(考虑行,列两种切法)
在[i][j][h][w]这块蛋糕中没有樱桃,则
dp[i][j][h][w]=0 否则
dp[i][j][h][w]=min{
dp[i][j][h][w-w0]+dp[i][j+w0][h][j-w0]+h
(当两块蛋糕都有樱桃时才加h)
;dp[i][j][h-h0][w]+dp[i+h0][j][h-h0][w]+w
(当两块蛋糕都有樱桃时才加w)
}
在[i][j][h][w]这块蛋糕中没有樱桃,则
dp[i][j][h][w]=0 否则
dp[i][j][h][w]=min{
dp[i][j][h][w-w0]+dp[i][j+w0][h][j-w0]+h
(当两块蛋糕都有樱桃时才加h)
;dp[i][j][h-h0][w]+dp[i+h0][j][h-h0][w]+w
(当两块蛋糕都有樱桃时才加w)
}