1.給你n件物品,給你乙個包重量為m(問你正好裝**積為m? 有多少種選擇)
我這件物品要麼就是裝進來,要麼就是不裝進來,2^n種選擇
找到遞迴退出條件: ①揹包容量為0,則有唯一一種裝法
②0件物品則只有0件裝法
// poj 2755.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include #include #include #include using namespace std;
int a[21];//最多有20件物品
int f(int w,int k)
int _tmain(int argc, _tchar* ar**)
printf("%d",f(40,n));
system("pause");
return 0;
}
#include #include using namespace std;
const int maxn = 110;
int a[maxn];
int dp[maxn][maxn];//dp[i][j] 從前j件物品中湊出體積為i
int main()
dp[0][0] = 1;
for(int i = 1;i<=w;i++)//重量為w
for(int j = 1;j<=m;j++)
} //printf("%d\n",dp[w][m]);
for(int i = 0;i<=w;i++)
printf("\n"); }
return 0;
}
類似0 1揹包的dfs 選與不選
題目大意 思路 每個傳送陣可以選擇傳送或者不傳送。從n 1開始考慮。從終點最遠的傳送陣開始列舉 include using namespace std define ll long long struct node node 16 int cmp node a,node b ll t ll l,ll...
動態規劃 01揹包
最優二叉查詢樹.cpp 定義控制台應用程式的入口點。01揹包問題。include stdafx.h include include define n 3 the number of real node define m 10 using namespace std int tmain int arg...
01揹包動態規劃
0 1揹包 問題描述 乙個旅行者有乙個最多能用 m公斤的揹包,現在有 n件物品,它們的重量 分別是w1,w2 wn,它們的價值分別為 c1,c2,cn.若每種物品只有一 件求旅行者能獲得最大總價值。輸入格式 w 第一行 兩個整數,m 揹包容量,m 200 和n 物品數量,n 30 w第2.n 1 行...