習題課3 1 動態規劃

2021-10-24 22:28:03 字數 1600 閱讀 4499

01揹包

完全揹包

public

class

beibaowenti1_3_1

static

class

task

}else}}

return f[v];}

// ***************== **實現結束 ***************==

void

solve

(inputreader in, printwriter out)

out.

println

(getanswer

(n, v, t, w, _v));

}}

public

class

beibaowenti2_3_1

static

class

task

// 01揹包問題

// 對於體積為v,價值為w的物品i,要裝填到揹包體積為j的揹包中的最大價值

// d[i-1][j]表示不放物品i,只放i之前的物品時所能裝的最大價值

// d[i-1][j-v.get(i)]+w.get(i) 表示放入物品i後,恰好裝滿揹包,此時由沒放物品i,揹包體積為當前體積減去物品i體積的最大價值揹包加上物品i的價值

// 兩者中較大者即為最大價值

for(

int j = v.

get(i)

; j <=

5000

; j++)}

// 丟棄的x之後的最大價值揹包

// 與上面的過程相反,上面是依照物品正序求最大揹包

// 此處依照物品順序倒序求最大揹包

// 計算字尾揹包

for(

int i = n; i >=

1; i--

)for

(int j = v.

get(i)

; j <=

5000

; j++)}

list

ans =

newarraylist

<

>()

;for

(int k =

1; k <= q; k++

) ans.

add(mx);}

return ans;

}// ***************== **實現結束 ***************==

void

solve

(inputreader in, printwriter out)

q = in.

nextint()

;for

(int i =

0; i < q;

++i)

list

ans =

getanswer

(n, w, v, q, qv, qx)

;for

(int i =

0; i < q;

++i)

out.

println

(ans.

get(i));

}}

B 習題課一

計算導論與程式設計課程要開習題課,由於教室座位有限,所以決定限制參加人數。於是規定 1 最多允許一半的班級裡的同學參加 2 可以參加的班級最多允許一半的同學參加。現請你寫一段程式來計算習題課最多可能有多少個學生參加。輸入為兩行,第一行為乙個整數n 0題課的人數的最大值。當數字為奇數時,一半指的是該數...

B 習題課一

計算導論與程式設計課程要開習題課,由於教室座位有限,所以決定限制參加人數。於是規定 1 最多允許一半的班級裡的同學參加 2 可以參加的班級最多允許一半的同學參加。現請你寫一段程式來計算習題課最多可能有多少個學生參加。輸入為兩行,第一行為乙個整數n 0題課的人數的最大值。當數字為奇數時,一半指的是該數...

2014秋C 另類習題課

課程主頁在課程資源在雲學堂 賀老師課堂 同步展示,使用的帳號請到課程主頁中檢視。每一批 班級團隊名 主講團隊成員 題目要求 計145 bit夏煥哲 林海雲 夏煥哲 曾建強 王子嶽 張衡宇 楊旭 編寫程式,輸出1 3 3 5 2b5 7 7 9.19 27 的結果計145 kalil 邵帥邵帥 趙嵩 ...