UVA624 01揹包 路徑列印

2021-06-26 12:50:49 字數 589 閱讀 6626

題目的意思就就是給你乙個值,在給你幾個數字.用這些數字湊出最接近這個值的組合.簡單01揹包 + 路徑列印.

路徑列印時可以根據 f[i][j] == f [ i  - 1] [ j ]  的話,這個數就沒有被選擇.

從後往前找:

ac**;

#include#includeconst int n = 1000;

const int m = 25;

int track[m];

int f[m][n * m];

int vis[m];

int n;

int sum;

int dp()

} }}void print() }

}int main ()

memset(f , -1 ,sizeof(f));

memset(vis , 0 ,sizeof(vis));

for (int i = 0 ; i < n * m;i++)

dp();

print();

printf("sum:%d\n" ,f[n][sum]);

}}

UVA 624 01揹包求方案

題目 題意 給定揹包容量,給定物品個數,然後是物品,價值和體積相等。求最大價值時的放入方案,多解輸出一解即可 思路 每次更新揹包時順便記錄被誰跟新的即可,然後逆向求方案,正向輸出 總結 揹包和dp忘得差不多了。憂傷。是時候刷一波了 include include include include us...

CD UVA 624(01揹包 記憶路徑)

題意 乙個軌道長度為n的cd,k首歌,每首歌的長度不同,問這張cd上最多能燒錄多長的歌曲,歌曲必須被整首燒錄 最後輸出cd上所刻的歌曲及總長度 01揹包加上路徑記憶 用二維陣列記錄路徑vis i j 表示第i首在長度為j是被錄製 include include include include usi...

0 1揹包 記錄路徑 UVA624

題目大意 有乙個固定長度的磁帶,想要把cd放進去,空間利用率盡可能的高,每個磁帶只能用一次。01揹包問題,就是把體積和重量看做了tracks和time,這裡注意列印路徑的方法 include include include include include include include includ...