Ex 6 14 布料剪裁問題 第八次作業

2022-03-20 10:50:59 字數 1367 閱讀 5177

子問題定義:定義p[i][j]為布料寬為i,高為j的最優產出,每次剪下一塊布料,剩餘布料最多形成三塊矩陣面料。每次剪裁會有兩種情況,水平切割布料,其次是將布料旋轉90度後在切割布料。

遞迴關係:

初值設定:

p[0][h]=0

p[w][0]=0

求解順序:

依次求解二維陣列p的每一行,每一列,最終的結果為p[布料的寬][布料的高]

1

package

org.xiu68.ch6.ex8;23

public

class

ex6_14 ;

14 tailor(10,10,cloths); //

生產出的產品最**為: 10

15 tailor(40,40,cloths); //

生產出的產品最**為: 160

1617 clothing cloths2=new

clothing;

24 tailor(10,10,cloths2); //

生產出的產品最**為: 11

25 tailor(40,40,cloths2); //

生產出的產品最**為: 18026}

2728

/*29

* w:布料的寬

30* h:布料的高

31* cloths:服裝產品

32* 一塊布切割後,最多剩下3塊

33*/

34public

static

void tailor(int w,int

h,clothing cloths)else

6465 }//

for3

66 }//

for2

67 }//

for1

68 system.out.println("生產出的產品最**為: "+p[w][h]);69}

70}7172

//服裝

73class

clothing

84 }

view code