noj演算法題 裝載問題

2021-07-01 21:38:20 字數 829 閱讀 3983

裝載問題(回溯,子集樹)

時限: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標誌輸入結束。對於每個測例在單獨的一行內輸...