hdu1114 Piggy-Bank(完全揹包)
題意:存錢罐可以往裡面放一些價值小的錢,但是時間久了就不知道里面有多少錢了,除非你打破它。現在給出空罐子的重量和最滿能裝到多重,然後給出每種硬幣的價值和重量,我們要在不打破它的情況下確認罐子裡最少有多少錢。
思路:很貼近生活。每種硬幣數量不限,所以是完全揹包。條件必須在裝滿的情況下,求最小价值,那麼初始化變為裝滿的情況(揹包九講)和max變為min。如果遍歷完物品後滿容量的dp值沒有被改變則說明這些硬幣無法組成這個容量。由於資料10000,所以就不用二維的了。
#include <stdio.h> #include <algorithm> #include <stdlib.h> #include <string.h> #include <iostream> using namespace std; typedef long long LL; const int N = 10005; const int INF = 0x3f3f3f3f; int dp[N]; int main() { // freopen("in.txt", "r", stdin); int t, V, n, emp, fil; int cost[N], weight[N]; scanf("%d", &t); while(t--) { scanf("%d%d", &emp, &fil); scanf("%d", &n);//物品數量 for(int i = 1; i <= n; i++) scanf("%d%d", &weight[i], &cost[i]); V = fil-emp; dp[0] = 0;//裝滿 for(int i = 1; i <= V; i++) dp[i] = INF; for(int i = 1; i <= n; i++) for(int j = cost[i]; j <= V; j++) { dp[j] = min(dp[j], dp[j-cost[i]]+weight[i]); } /* for(int i = 0; i <= V; i++) printf("%d ", dp[i]); printf("\n");*/ if(dp[V] == INF) printf("This is impossible.\n"); else printf("The minimum amount of money in the piggy-bank is %d.\n", dp[V]); } return 0; }
相關推薦
hdu1114 Piggy-Bank(完全揹包)
題意:存錢罐可以往裡面放一些價值小的錢,但是時間久了就不知道里面有多少錢了,除非你打破它。現在給出空罐子的重量和最滿能裝到多重,然後給出每種硬幣的價值和重量,我們要在不打破它的情況下確認罐子裡最少
HDU 1114 Piggy-Bank(完全揹包)
The input consists of T test cases. The number of them (T) is given on the first line of the input file. Each test case begins with a line containing two i
HDU 1114 Piggy-Bank(完全背包)
ask style span ica ace eno eterm ++ empty 題目: Before ACM can do anything, a budget must be prepared and the necessary financial support o
HDU1114 Piggy-Bank —— DP 完全背包
sum tar pla con pie anything algo earch aps 題目鏈接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1114 Piggy-Bank Time Limit: 2000/1000
hdu-2159(完全揹包)
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路:完全揹包,但有次數的限制,因此,對次數進行dp,判斷次數是否超限。 #include<iostream> #include<cstdio> #include<c
HDU 1248 - 寒冰王座(完全揹包)
題目連結 http://acm.hdu.edu.cn/showproblem.php?pid=1248 【題目描述】 不死族的巫妖王發工資拉,死亡騎士拿到一張N元的鈔票(記住,只有一張鈔票),為了防止自己在戰鬥中頻繁的死掉,他決定給自己買一些道具,於是他來到了地精商店前. 死亡騎士:
洛谷2918 買乾草(完全揹包)
傳送門 【題目分析】 我會說NOIP考前一天現學揹包這種大實話嗎 一眼揹包的型別,因為無限多所以是完全揹包問題,注意最小值不一定在dp[m],但也不會超過dp[m+5000],所以直接列舉一下即可。 【程式碼~】 #include<bits/stdc++.h> usi
1003度度熊與邪惡大魔王(完全揹包)
1003度度熊與邪惡大魔王 Accepts: 1503 Submissions: 9026 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descrip
p1273 質數和分解(完全揹包)
題目 https://www.luogu.org/problemnew/show/P2563 題解 1.碼出素數表, 2.接下來是重點,重點,重點!!! 重要的事情說三遍 很多人不知道狀態轉移方程f[j]+=f[j-prime[i]]的意義 可以這麼理解,一個數要拆成若干素數
p1279 過河(完全揹包)
題目 https://www.luogu.org/problemnew/show/P2904 程式碼 #include<bits/stdc++.h> using namespace std; inline int read() { int f=1,num=0;
UVA 147 Dollars (完全揹包)
#include<bits/stdc++.h> using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)<(z);(x)++) #def
Piggy-Bank 【完全揹包】
在 ACM 能夠開展之前,必須準備預算,並獲得必要的財力支援。該活動的主要收入來自於 Irreversibly Bound Money (IBM)。思路很簡單。任何時候,某位 ACM 會員有少量的錢時,他將所有的硬幣投入到小豬儲錢罐中。這個過程不可逆,因為只有把小豬儲錢罐打碎
UVA 674 Coin Change (完全揹包)
解法 dp表示目前的種數,要全部裝滿所以f[0]=1其餘為0的初始化是必不可少的 程式碼 #include <bits/stdc++.h> using namespace std; int t; int v[]={1,5,10,25,50}; int dp[10000]; void DP()
詳解_動態規劃DAG_硬幣找零問題(完全揹包)
寫了好多結果一下卡住都沒了。。。(csdn怕是把大部分伺服器資源用在了廣告投放上吧) 參考數目:演算法競賽入門經典(第二版) NYOJ 995: 描述 在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回
2017百度之星資格賽 1003 度度熊與邪惡大魔王(完全揹包)
度度熊為了拯救可愛的公主,於是與邪惡大魔王戰鬥起來。 邪惡大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。 度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。 當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p
2017百度之星-1003-度度熊與邪惡大魔王(完全揹包)
度度熊為了拯救可愛的公主,於是與邪惡大魔王戰鬥起來。 邪惡大魔王的麾下有n個怪獸,每個怪獸有a[i]的生命值,以及b[i]的防禦力。 度度熊一共擁有m種攻擊方式,第i種攻擊方式,需要消耗k[i]的晶石,造成p[i]點傷害。 當然,如果度度熊使用第i個技能打在第j個怪獸上面的話,會使得第j個怪獸的生命值減少p
ZOJ3623 Battle Ships (完全揹包)
Battle Ships Time Limit: 2 Seconds Memory Limit: 65536 KB Battle Ships is a new game which is similar to Star Craft. In this game
杭電ACM1114(完全揹包)
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1114 題目大意:有一個存錢罐,給出它的重量和裝滿硬幣的重量,然後給出裡面裝的硬幣的種類數,並給出每種硬
HDOJ 1176 免費餡餅(完全揹包)
免費餡餅 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 17 Accepted Submission(s)
每日三題-Day2-B(HDU 1114 Piggy-Bank 完全揹包)
原題地址 Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 24047 Accepted S