time limit: 1 sec memory limit: 128 mb
submit: 182 solved: 98
[submit][status][web board]
你有乙個神奇的揹包,他的容積是m(0第一行 n,m
第二行 n個數字
輸出方案數
3 40
20 20 20
題目大意:給乙個容量為m的揹包和n件物品,每件物品的重量為a[ i ],求有多少種裝滿揹包的方案。
想法:用dfs演算法即可。
dfs模板:
void dfs(int step)
}
完整**:
#include using namespace std;
int n, m, a[30], ans = 0;
void dfs(int ok, int k)//ok代表本層結果,k就是陣列的index 下標而已。
if (ok<0 || k>n)//如果要裝進去的東西太多了或者所有東西都裝進去了(本題必須要裝滿才能拿),都不滿足
return;
dfs(ok - a[k], k + 1);//放進乙個a[k]的東西
dfs(ok, k + 1);//繼續推進,進入下一層遞迴
return;}
int main()
return 0;
}
參考資料: ZCMU1711揹包(dfs入門題)
你有乙個神奇的揹包,他的容積是m 0第一行 n,m 第二行 n個數字 輸出方案數 3 40 20 20 20 先將一下題意吧 乙個固定容積的揹包,然後給你n個物品,他們各自都有自己的容積,用這些物品去裝揹包,乙個前提條件就是一定要將揹包裝滿,不裝滿肯定不行,裝滿一次計數一次,大概就是這個意思了。剛剛...
zcmu 1261 採藥(01揹包)
time limit 1 sec memory limit 128 mb submit 320 solved 159 submit status web board 辰辰是個天資聰穎的孩子,他的夢想是成為世界上最偉大的醫師。為此,他想拜附近最有威望的醫師為師。醫師為了判斷他的資質,給他出了乙個難題。...
DFS寫揹包問題
dfs解決揹包問題 include 用深搜寫 using namespace std int weight,maxvalue 0,n 揹包中能放物品的總質量weight,最大價值maxvalue,總的物品數量 int v 30 w 30 物品的數量和價值 void dfs int index,int...