簡單的0-1揹包列印路徑問題,我們可以記錄乙個p陣列來判斷,當前物品是否被選中,最後按照記錄輸出,注意是逆序。
#include#includeint main()
j=m;
for(i=n;i>=1;i--)
if(p[i][j])
printf("sum:%d\n",s[m]);
} return 0;
}
接下來的遞迴版本,基本思想是一樣的,大家還是看**把。
遞迴版本
#include#include#includeusing namespace std;
#define max(x,y) (x>y? x:y)
int dp[13000],a[1000][1000],w[13000],f[10000],count=0;
void print(int n,int m)
}int main()
}count=0;
print(n,m);
for(i=0;i
uva 624 CD 0 1揹包列印路徑
include include include include using namespace std const int inf 1000000 define n 1000000 int dp 22 n int a 22 int n,t void printf path vector v,int ...
0 1揹包的遞迴與非遞迴實現
1 0 1揹包遞迴 2 include2 include 3 using namespace std 45 int w 物品重量陣列 6int v 物品價值陣列 7int contain 5 揹包容量 8int y 4 解向量,y i 1表示選取物品,y i 0表示不選取物品910 int f in...
簡單的揹包問題 非遞迴和遞迴
問題描述 從一堆物品中選出滿足特定要求的數個物品,求方案 從重量1 4 4 5 7的5個物品中選出數個,要求總重量為10 分析 略 遞迴演算法 int knap int w,int t,int n stack void init stack s int isempty stack s void pu...