演算法練習 NOJ 1005 裝載問題

2021-06-29 16:17:09 字數 810 閱讀 9947

時限: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 7

7 9 2

8 8

0 0 0

輸出樣例

yes

no提示

求出不超過c1的最大值max,若總重量-max < c2則能裝入到兩艘船。

#include

int c1,c2,n,w[10];

int weight=0,max=0; void search(int

m)

else

search(m+1); } }

int main()

search(0);

if(sum-max<=c2)

printf("yes\n");

else

printf("no\n");

max=0;

sum=0;

scanf("%d

%d%d",&c1,&c2,&n); }

return

0; }

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

noj 1005 多項式加法

對於輸入,由於是按指數遞減輸入的,故我們只需按照輸入順序進行儲存即可。對待乙個輸入 1.如果當前多項式為空,那麼將此項放入第一項 2.如果當前多項式不為空 3.如果有指數相同的項,那麼將此項與指數相同的項合併,如果係數變為0,則將此項刪除。4.如果沒有指數相同的項 那麼此項的指數一定比當前所有項的指...