裝載問題(回溯,子集樹)
時限:1000ms 記憶體限制:10000k 總時限:3000ms
描述:有兩艘船,載重量分別是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
輸出樣例:
yes no
c語言**:
#include #include #define max 15
void load(int *w,int c1,int n,int nowweight);
int w[max]=;
int c1,c2,n;
int maxweight=0;
int count=0;
int result[max]=;
void load(int *w,int c1,int n,int nowweight)
return;
}if(c1>=w[n-1])
load(w,c1,n-1,nowweight);
}int main()
{ int i,weight,restweight;
while((scanf("%d%d%d",&c1,&c2,&n)!=1)&&(n!=0)){
for(i=0;i
演算法練習 NOJ 1005 裝載問題
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。輸入多個測例,每個測例的輸入佔兩行。第一行一次是c1 c2和n n 10 第二行n個...
noj 1005 裝載問題
兩個船和n個貨物,兩個船分別容量有一定的限制,貨物也有對應的重量。解決的策略是最優的裝乙個船,然後看剩下的重量是否超過了另外乙個船,如果超過了的話就不可解。include include include include include include using namespace std int ...
NOJ 1005 裝載問題 回溯法
有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。多個測例,每個測例的輸入佔兩行。第一行一次是c1 c2和n n 10 第二行n個整數表示wi i 1 n n等於0標誌輸入結束。對於每個測例在單獨的一行內輸...