動態規劃 Problem R

2021-07-12 05:24:00 字數 819 閱讀 5897

動態規劃—problem r

題意 題意:給出小豬錢罐的重量和裝滿錢後的重量,然後是幾組資料,每組資料報括每種錢幣的價值與重量。要求出重量最少能裝滿錢罐時的最大價值。

解題思路

完全揹包問題。關於完全揹包嘛,即在01揹包的基礎上,每種物品有無限件。也就是從每種物品的角度考慮,與它相關的策略已並非取或不取兩種,而是有取0件、取1件、取2件……等很多種。如果仍然按照解01揹包時的思路,令f[i][v]表示前i種物品恰放入乙個容量為v的揹包的最大權值。

狀態轉移方程為:

dp[j] = min(dp[j],dp[j-wei[i]]+val[i]).

最後,如果動規陣列最後一格資料不等於初始值,即為答案。

感想 最近上課聽的有些懵逼,呵呵,完全揹包,還需再加深認識與理解。

ac**

#include 

#include

#include

using

namespace

std;

int dp[1000005];

int main()

dp[0] = 0;

for(i = 0;ifor(j = wei[i];j<=w;j++)

}if(dp[w] == 10000000)

printf("this is impossible.\n");

else

printf("the minimum amount of money in the piggy-bank is %d.\n",dp[w]);

}return

0;}

動態規劃 什麼是動態規劃?

先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...

mysql動態規劃 動態規劃

動態規劃 能夠動態規劃的問題具有以下特點 可分解成規模更小的子問題 子問題的結果可復用 關鍵是要理解狀態轉移方程的含義就好啦!數字三角形 問題描述 在數字三角形尋找從頂到底的路徑,使得路徑經過的數字之和最大。規定每一步只能往左下或右下走,求出最大路徑和。遞迴解法 include include us...

《動態規劃》 ACM 動態規劃例題詳解

描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 圖1 圖1給出了乙個數字三角形。從三角形的頂部到底部有很多條不同的路徑。對於每條路徑,把路徑上面的數加起來可以得到乙個和,你的任務就是找到最大的和。注意 路徑上的每一步只能從乙個數走到下一層上和它最近的左邊的那個數或者右邊的那個數。輸...