分蛋糕(動態規劃)

2021-10-04 23:06:09 字數 882 閱讀 9379

描述

有一塊矩形大蛋糕,長和寬分別是整數w 、h。現要將其切成m塊小蛋糕,每個小蛋糕都必須是矩形、且長和寬均為整數。切蛋糕時,每次切一塊蛋糕,將其分成兩個矩形蛋糕。請計算:最後得到的m塊小蛋糕中,最大的那塊蛋糕的面積下限。

假設w= 4, h= 4, m= 4,則下面的切法可使得其中最大蛋糕塊的面積最小。

假設w= 4, h= 4, m= 3,則下面的切法會使得其中最大蛋糕塊的面積最小:

輸入共有多行,每行表示乙個測試案例。每行是三個用空格分開的整數w, h, m ,其中1 ≤ w, h, m ≤ 20 , m ≤ wh. 當 w = h = m = 0 時不需要處理,表示輸入結束。

輸出每個測試案例的結果佔一行,輸出乙個整數,表示最大蛋糕塊的面積下限。

樣例輸入

4 4 4

4 4 3

0 0 0

樣例輸出

4

6

1 #include2 #include3 #include4

5using

namespace

std;67

const

int inf = 0x3f3f3f3f;8

int minmax[22][22][22]; //

min[i][j][k]表示 i*j的蛋糕分成為k+1塊(切k刀)最大的那塊蛋糕的最小面積910

intmain()

25}

26for(int c = 1; c <= j - 1; c++) 30}

31}32}

33}34}

3536

while(cin >> w >> h >> m && (w || h ||m))

39 }

動態規劃之分蛋糕

003 分蛋糕 總時間限制 1000ms 記憶體限制 65536kb 描述有一塊矩形大蛋糕,長和寬分別是整數w h。現要將其切成m塊小蛋糕,每個小蛋糕都必須是矩形 且長和寬均為整數。切蛋糕時,每次切一塊蛋糕,將其分成兩個矩形蛋糕。請計算 最後得到的m塊小蛋糕中,最大的那塊蛋糕的面積下限。假設w 4,...

分蘋果 動態規劃

includeint solve int m,int n int main 用solve m,n 來解決m個蘋果放在n個盤子裡的放法,因為這個問題包含有子問題可以劃分為至少乙個盤子不為空的放法加上每個盤子都不能為空的放法的和。所以可以用遞迴解決,另外n m時可以將n轉化成m,因為多餘蘋果的數量的盤子...

分蛋糕問題

分蛋糕問題 有一家有兩個孩子,哥哥和弟弟,兩人都很喜歡吃蛋糕,每次分蛋糕的時候,哥哥都會把一把刀插在蛋糕的一端,然後隨機地切下兩刀,插著刀的這一部分歸哥哥,剩下的歸弟弟,那麼問題來了,這樣的分配方式看似公平,但是到底真正公平嗎?首先我們採用隨機模擬的方式來分析一下問題,將蛋糕分成360度,設定一開始...