嗯哼,繼續動態規劃,其實有點想滾去做開發。
題目概述:
有乙個存錢的人,往小豬罐子裡存錢。給定罐子淨重,和存錢後的質量。繼而給定每一種扔進去硬幣的價值和重量,要求計算最小的可能的滿足這個總質量的錢的價值總和。很明顯的完全揹包,因為投進去的錢可以是無限的。
演算法思想:
具體描述一下動態規劃陣列。關於陣列的初始化,因為這道題要求裝滿揹包 && 求裝滿時候最小值所以初始化的時候一定要把所有的dp陣列設為inf的,然後在dp[0]的時候設定為0。
dp的遞推就是裸完全揹包了。
**部分:
#include #include using namespace std;
int dp[10010];
int a, b, n; const int inf = 100000000;
int cost[505], value[505]; // 物品的重量,價值陣列。
int main()
for (int i = 0; i <= 10010; i++)
dp[0] = 0;
for (int i = 1; i <= n; i++)
} if (dp[v] == inf) cout << "this is impossible." << endl;
else cout << "the minimum amount of money in the piggy-bank is " << dp[v] << "." << endl; }
return 0;
}
POJ 1384 完全揹包
題意 給定乙個重量,和各種錢幣的重量,求可以滿足給定重量的錢幣組合中的最小組合。如果存在組合就求出最小值。轉移方程 1 f j 和 f j w i 都可達 則 f j min 2 f j 不可達 但 f j w i 可達 則 f j f j w i p i 3 其餘情況 則不作處理 程式 inclu...
poj 1384完全揹包
題意 給出豬罐子的空質量和滿質量,和n個硬幣的價值和質量,求豬罐子剛好塞滿的的最小價值。思路 選擇硬幣,完全揹包問題,塞滿 初始化為無窮,求最小價值,min。include include includeusing namespace std define inf 10000000 int n,su...
POJ 1384 完全揹包
題意 已知儲蓄罐滿時的質量f以及空時質量e,有n種硬幣,每種硬幣的價值為p,質量為w,求該儲蓄罐中的最少有多少錢?思路 完全揹包思想,問題是在乙個重量下的最小價值 那麼只要變一下符號就好了?include include include include include using namespace...