時限: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.如果沒有指數相同的項 那麼此項的指數一定比當前所有項的指...