hdu 1226 揹包問題解法

2021-06-14 05:02:54 字數 651 閱讀 2238

對於每一位數,有m種選法,dp[i][j]代表到達第i位時,數對n取余為j時的屬性,列舉選擇的數時候從小到大保證答案是最小解。

要特別注意存在0這個數的情況,特別容易出錯。

#include #include #include #include #include #include using namespace std;

struct dp

dp[505][5005];

int id[16];

int tempid[16];

int n,c,m;

int main()

sort(id,id+m);

if(n==0)

memset(dp,0,sizeof dp);

memcpy(tempid,id,sizeof id);

for(i=0;i=10)printf("%c",ans-10+'a');

else printf("%d",ans);

ta=dp[i][ta].next;

if(i==0)break;

}} else printf("give me the bomb please");

printf("\n");

} return 0;

}

分組揹包問題解法

前面的部落格中提到了0 1揹包問題,下面說明一種更加複雜的動態規劃問題 分組揹包。乙個容量為v的揹包 和有n 0,1,2 i n 件物品。第i件物品的費用是c i 價值是w i 這些物品被劃分為若干組,每組中的物品互相衝突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價...

通俗理解0 1揹包問題解法

0 1揹包問題是乙個很經典的問題,使用動態規劃演算法來求解也是很經典的。下面我用乙個例子來講解用動態規劃演算法求解0 1揹包問題。假設商店中有5件東西,重量用w表示,用v表示 現在有乙個小偷來到了小店中,這哥們帶了乙個袋子,但是這個袋子只能裝20公斤 w 20 的東西,問題來了,他怎麼樣偷才能拿到總...

01揹包問題解法及優化

給定乙個容量為c的揹包,重量為weight,價值為value的石頭,求揹包能容納的最大價值。例 weight 1 2,3 value 6 10,12 c 5輸出 22 揹包中放入乙個重量為3的石頭和乙個重量為2的石頭 value 10 12 22.public intfindres int weig...