題目描述:
第七題
小y 有乙個寬度為 100cm,高度為 20cm,深度為 1cm 的櫃子,如下圖。
小y 還有 3636 個禮物盒,他們的深度都為 1cm。
他們對應的寬度和高度如下,單位(cm)。
現在小y 想把這些盒子放到櫃子上,由於禮物盒裡面都裝有禮物,禮物盒必須向上放置,並且不能堆放。由於禮物盒深度和櫃子深度一樣,所以禮物盒和櫃子深度方向也必須一致。並且禮物盒的高度還不能大於櫃子的高度,否者放不進去。小y 希望放到櫃子上禮物盒的寬度和正好等於櫃子的寬度,也就是希望櫃子兩邊都不存在間隙。如下圖符合條件的放置。
滿足條件的情況下,小y 希望能盡可能多的放置禮物盒,算出最多能放多少個禮物盒。
#include#includeusing namespace std;
#includeint a[100],b[100],ans=-1;
void dfs(int cur,int s,int k)
dfs(cur+1,s,k);
dfs(cur+1,s+a[cur+1],k+1);
}int main()
//執行結果:18 161603
#include#include#includeusing namespace std;
int a[100],b[100],ans=-1;
void dfs(int cur,int s,int k)
for(int i=cur+1;i<=35;i++)
dfs(i,s+a[cur+1],k+1);
}int main()
//執行結果: 18 47772
//裝滿的01揹包
#include#include#include#includeusing namespace std;
int main()
//結果:18 0
11811
16126
1017106
52194
75515
315119
179410
1217
1920
1110
203
DFS寫揹包問題
dfs解決揹包問題 include 用深搜寫 using namespace std int weight,maxvalue 0,n 揹包中能放物品的總質量weight,最大價值maxvalue,總的物品數量 int v 30 w 30 物品的數量和價值 void dfs int index,int...
深度優先搜尋(dfs)與揹包問題
深度優先搜尋實質就是列舉,因此演算法的複雜度可能比較大。揹包問題是經典的動態規劃問題,掌握遞推公式就可以快速求解,但在不知道遞推公式的情況下,使用深度優先搜尋也是一種可行的辦法。本部落格不推薦使用深度優先搜尋去解決01揹包問題,但有助於讀者進一步理解dfs。使用深度優先搜尋解決01揹包問題 incl...
DFS解決01揹包問題
本篇博文著重用dfs解決著名的揹包問題 01揹包問題要點在 選與不選。所以我們很容易聯想到dfs來解決這個問題!下面我們來看看是如何實現的 includeusing namespace std const int n 30 int w n value n n,maxvalue 0,v void df...