對於每一位數,有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...