描述有兩艘船,載重量分別是c1、 c2,n個貨櫃,重量是wi (i=1…n),且所有貨櫃的總重量不超過c1+c2。確定是否有可能將所有貨櫃全部裝入兩艘船。
輸入多個測例,每個測例的輸入佔兩行。第一行一次是c1、c2和n(n<=10);第二行n個整數表示wi (i=1…n)。n等於0標誌輸入結束。
輸出對於每個測例在單獨的一行內輸出yes或no。
輸入樣例
7 8 2
8 77 9 2
8 80 0 0
輸出樣例
yesno
提示求出不超過c1的最大值max,若總重量-max < c2則能裝入到兩艘船。
#include
//這道題目的思路就是找到乙個船放置貨物的最大值,然後求解另一艘船能不能放下就可以了
#include
#define n 10000
using
namespace std;
void
dfs(
int m)
;void
checkmax()
;//檢驗最大值的函式
int a[n]
,w[n]
;int c1,c2,n,max;
intmain()
dfs(0)
;if(weigh-max>c2) cout<<
"no"
"yes"
max=0;
//必須每次更新為0,因為要計算多個解}}
void
dfs(
int m)
}void
checkmax()
NWPU演算法考試複習 0 1揹包問題
描述 需對容量為c 的揹包進行裝載。從n 個物品中選取裝入揹包的物品,每件物品i 的重量為wi 價值為pi 對於可行的揹包裝載,揹包中物品的總重量不能超過揹包的容量,最佳裝載是指所裝入的物品價值最高。輸入多個測例,每個測例的輸入佔三行。第一行兩個整數 n n 10 和c,第二行n個整數分別是w1到w...
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。輸入樣...