NWPU演算法考試複習 0 1揹包問題

2021-08-31 13:40:10 字數 798 閱讀 7403

描述

需對容量為c 的揹包進行裝載。從n 個物品中選取裝入揹包的物品,每件物品i 的重量為wi ,價值為pi 。對於可行的揹包裝載,揹包中物品的總重量不能超過揹包的容量,最佳裝載是指所裝入的物品價值最高。

輸入多個測例,每個測例的輸入佔三行。第一行兩個整數:n(n<=10)和c,第二行n個整數分別是w1到wn,第三行n個整數分別是p1到pn。

n 和 c 都等於零標誌輸入結束。

輸出每個測例的輸出佔一行,輸出乙個整數,即最佳裝載的總價值。

輸入樣例

1 21

12 3

2 23 4

0 0輸出樣例14

#include

#include

#define n 10000

void

dfs(

int m)

;void

checkmax()

;using

namespace std;

int best,n,c;

int a[n]

,w[n]

,p[n]

;int

main()

return0;

}void

dfs(

int m)

}void

checkmax()

//檢查當前價值是否為最大值}if

(value>best&&weigh<=c) best=value;

}//已經在noj上測試並且通過

NWPU演算法考試複習 裝載問題

描述 有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。輸入多個測例,每個測例的輸入佔兩行。第一行一次是c1 c2和n n 10 第二行n個整數表示wi i 1 n n等於0標誌輸入結束。輸出對於每個測例在...

NWPU演算法考試複習 窮舉所有排列

描述 輸入乙個小於10的正整數n,按把每個元素都交換到最前面一次的方法,輸出前n個小寫字母的所有排列。輸入輸入乙個小於10的正整數n。輸出按把每個元素都交換到最前面一次的方法,輸出前n個小寫字母的所有排列。輸入樣例 3輸出樣例 abcacb bacbca cbacab include 這題也是乙個簡...

NWPU演算法考試複習 二分查詢

描述 給定乙個單調遞增的整數序列,問某個整數是否在序列中。輸入第一行為乙個整數n,表示序列中整數的個數 第二行為n n不超過10000 個整數 第三行為乙個整數m m不超過50000 表示查詢的個數 接下來m行每行乙個整數k。輸出每個查詢的輸出佔一行,如果k在序列中,輸出yes,否則輸出no。輸入樣...