[HDU 1114] Piggy-Bank (动态规划)】的更多相关文章

Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42725    Accepted Submission(s): 21075 Problem Description Before ACM can do anything, a budget must be prepared and the necessary fina…
Piggy-Bank  HDU 1114 初始化的细节问题: 因为要求恰好装满!! 所以初始化要注意: 初始化时除了F[0]为0,其它F[1..V]均设为−∞. 又这个题目是求最小价值: 则就是初始化时除了F[0]为0,其它F[1..V]均设为∞. #include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; const int…
Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1114 Appoint description:  System Crawler  (2015-09-06) Description Before ACM can do anything, a budget must be prepared and the neces…
Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 1114 Description Before ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income fo…
HDOJ(HDU).1114 Piggy-Bank (DP 完全背包) 题意分析 裸的完全背包 代码总览 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define nmax 100000 #define INF 0x3f3f3f3f using namespace std; int we[nmax],va[nmax],dp[nmax]; stru…
题目地址:HDU 1114 把dp[0]初始化为0,其它的初始化为INF.这样就能保证最后的结果一定是满的,即一定是从0慢慢的加上来的. 代码例如以下: #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <queue> #include <cmath> #incl…
HDU 1114 Piggy-Bank 完全背包问题. 想想我们01背包是逆序遍历是为了保证什么? 保证每件物品只有两种状态,取或者不取.那么正序遍历呢? 这不就正好满足完全背包的条件了吗 means:给出小猪钱罐的重量和装满钱后的重量,然后是几组数据,每组数据包括每种钱币的价值与重量要求出装满钱罐时的最小价值 #include<cstdio> #include<cstring> #include<cmath> #include<iostream> usin…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 简单完全背包,不多说. #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <map> #include <iterator> #include <vector> using namespace std;…
Problem Description Before ACM can do anything, a budget must be prepared and the necessary financial support obtained. The main income for this action comes from Irreversibly Bound Money (IBM). The idea behind is simple. Whenever some ACM member has…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目大意:根据储钱罐的重量,求出里面钱最少有多少.给定储钱罐的初始重量,装硬币后重量,和每个对应面值硬币的重量. Sample Input 3 10 110 2 1 1 30 50 10 110 2 1 1 50 30 1 6 2 10 3 20 4   Sample Output The minimum amount of money in the piggy-bank is 60. The…
动态规划的解决方法是找到动态转移方程. 题目地址:http://acm.hdu.edu.cn/game/entry/problem/show.php?chapterid=3&sectionid=2&problemid=4 题目大意:找到一个最多的老鼠序列,使得序列中的老鼠的体重满足递增,相应老鼠的速度满足递 减.即可要求找出老鼠体重递增,速度递减的最长子序列(不需要连续). 思路:动态转移方程的确定,状态f[i]表示前i个老鼠中的最长递减子序列长度,状态转移方程为mouse[i].len…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 AC code: #include<bits/stdc++.h> using namespace std; int main() { int c; scanf("%d",&c); while(c--) { ],w[]; scanf("%d%d%d",&e,&f,&n); ; i<n; i++) scanf(&quo…
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8553    Accepted Submission(s): 3283 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休…
题目大意:              告诉你钱罐的初始重量和装满的重量, 你可以得到这个钱罐可以存放钱币的重量,下面有 n 种钱币, n 组, 每组告诉你这种金币的价值和它的重量,问你是否可以将这个钱罐装满,装满的情况下,输出最小的价值, 不能装满则输出“This is impossible.”(很典型的完全背包的问题)   #include <iostream> #include <cstdio> #include <cstring> #include <alg…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 思路:求出存钱罐装全部装满情况下硬币的最小数量,即求出硬币的最小价值.转换为最小背包的问题. #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; int dp[INF],val[INF],we[INF]; int main(void) { int t,n,i,j,m,…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32136    Accepted Submission(s): 15965 Problem Description Before ACM can do anythi…
龟兔赛跑 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 1   Accepted Submission(s) : 1 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟…
Warcraft Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 957    Accepted Submission(s): 487 Problem Description Have you ever played the Warcraft?It doesn't matter whether you have played it !We…
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1114 题意 给出一个储钱罐 不知道里面有多少钱 但是可以通过重量来判断 先给出空储钱罐的重量 再给出装满钱币后储钱罐的重量 之后给出N种货币 pi wi pi 表示 第i件货币的价值 wi 表示第i件货币的重量 最后要求 储钱罐里面最少有多少钱 思路 完全背包模板问题 要注意初始化 因为这个是重量要刚好达到 初始化为 INF dp[0] = 0 AC代码 #include <cstdio> #in…
http://acm.hdu.edu.cn/showproblem.php?pid=1114 完全背包的题目,要求输出最小价值.然后一定要把给出的背包重量全部用完. 就是问一个背包为k的大小,n件物品,能装的最小价值,并且一定是用了k个背包容量. 用dp[i]表示背包容量为i得时候,能收录的最小价值, 边界:dp[0] = 0: 没容量,啥都干不了 else dp[i] = inf.一开始初始化为无穷大. 转移的话,dp[i] = min(dp[i], dp[i - weight[j]] + v…
http://acm.hdu.edu.cn/showproblem.php?pid=2602 第一题 01背包问题 http://acm.hdu.edu.cn/showproblem.php?pid=1114 第二题 完全背包问题 http://acm.hdu.edu.cn/showproblem.php?pid=2191 第三题 多重背包问题 这里重复使用数组 认识倒序 和 正序的原因 转自:http://www.cppblog.com/tanky-woo/archive/2010/07/31…
HDU 1144 Piggy-Bank 题意:有这么个存钱罐,给你空的时候重量和满的时候的重量,再给你N中类型的硬币(给出N种硬币总数量和总重量,可多次使用),问你怎样恰好填满存钱罐,而让填入的硬币数量最少. 思路:完全背包,求最少填入硬币数量,要把dp数组全部填充为INF,求min,注意结果要恰好填满. dp[j]= min(dp[j],dp[j-w[i]]+v[i])(dp[j]代表当前步,所用硬币最小数目) /** Sample Input 3 10 110 2 1 1 30 50 10…
本题是一个经典的动态规划题. 直接利用记忆化搜索:见图解 Ac code : #include<stdio.h> #include<string.h> #define max(i,j) (i>j?i:j) #define maxn 105 int a[maxn][maxn]; int d[maxn][maxn]; int s(int i,int j,int n) { if(d[i][j]>=0)return d[i][j]; return d[i][j]=a[i][j]…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5074 题目大意是给你m个note,n个数,得分是v[a[i]][a[i+1]]的总和,如果说a[i]是负数的话代表可以放人一个note,否则就只能放他给的note号. 问:最大的得分是多少? 我先写了记忆化搜索函数 dp(i,j)代表到第i个位置,放标号为j的note 那么 如果说a[i+1]<0,那么dp(i,j) = max( dp(i,j) , dp(i+1,k)+v[j][k] ); 否则d…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 题意:见题目 刚开始怎么写都写不对,后来吃饭的时候想了想记忆化搜索的办法 就是说设dp(now,rev)为我现在要选择now这个物品,此时我手里剩下了rev这么多的钱.那么如果我手里剩下的钱不少于5块钱的话就可以向下转移 这时候dp(now,rev) = min( dp(now+1,rev) , dp(now+1,rev-v[now] ) ) 如果说我手里这时候剩下了的钱数不超过5元,那么我什…
Lawrence Problem Description T. E. Lawrence was a controversial figure during World War I. He was a British officer who served in the Arabian theater and led a group of Arab nationals in guerilla strikes against the Ottoman Empire. His primary target…
Tree Cutting 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5909 Description Byteasar has a tree T with n vertices conveniently labeled with 1,2,...,n. Each vertex of the tree has an integer value vi. The value of a non-empty tree T is equal to v1⊕v…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5707 题意: 给你三个字符串 S1, S2, S3, 让你判断 S3 是否恰好由字符串 S1 和 S2组成, S1 为 S3 的子串, S2 也为 S3 的子串, 可以不连续. 思路: 设 dp[i][j] 表示字符串 S3 的前 i + j 位是否可以由字符串 S1 的前 i 位以及字符串 S2 的前 j 位组成. dp[i][j] = 1 表示可以, dp[i][j] = 0 则表示不可以. 则…
2017-08-06 15:41:04 writer:pprp 刚开始学dp,集训的讲的很难,但是还是得自己看,从简单到难,慢慢来(如果哪里有错误欢迎各位大佬指正) 题意如下: 给两个字符串,找到其中大的公共子序列,每个样例输出一个数: 最长公共子串(Longest Common Substirng)和最长公共子序列(Longest Common Subsequence,LCS)的区别为: 子串是串的一个连续的部分,子序列则是从不改变序列的顺序,而从序列中去掉任意的元素而获得新的序列: 也就是说…
题意: 给定一个存钱罐中要存硬币,知道空罐的重量和欲装满的重量,是否能装入?若能,打印最小价值.(注:能装的硬币重量一定刚刚好,里面的总价值要达到最小) 输入: 包含了T个测试例子,在第一行给出.接下来有T个例子,每个例子第一行包括两整数E和F,分别代表空罐的重量和装满钱的重量,单位都为克. 1 <= E <= F <= 10000. 第二行包含了一个整数N,代表了硬币的种类.(1 <= N <= 500)接下来N行是N种硬币的信息,每行有两个整数P和W,分别代表价值和重量,…