HDOJ
Masker_43
这个作者很懒,什么都没留下…
展开
-
HDOJ 1114 【Piggy-Bank】
思路:首先,01背包是一定的,它的特殊之处有:1.必须装满到W,并且要判断出是否可以恰好装满2.要找出每个状态的最小金额针对第一点,有两种初始化方式:for(int i=1;i<=n;i++){ cin>>v[i]>>w[i]; dp[w[i]] = min(dp[w[i]] , v[i]);}dp[0] = 0;for(int...原创 2019-04-21 09:33:50 · 183 阅读 · 0 评论 -
HDOJ 1059【Dividing】
原题链接多重背包,装满,w[i] == v[i]因为是第一次做多重背包,我首先试图将所有可能装出的重量枚举出来,TLE。代码如下://1000MS(TLE) 1520K#include <iostream>#include <cstring>using namespace std;const int maxn = 10;const int ma...原创 2019-04-21 19:20:19 · 183 阅读 · 0 评论 -
HDOJ 3466【Proud Merchants】
WA代码:46MS 1488K#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int maxn = 505 ;const int maxw = 5005; int dp [maxw];int cost[maxw];s...原创 2019-04-18 21:50:16 · 148 阅读 · 0 评论 -
HDOJ 2159【Fate】
题目链接二维费用的背包问题,第二维费用即为数量。要仔细想想如何打背包,本题中只能是:dp[i][j] 这一格代表 最多花 i 忍耐度,最多打 j 个怪 的限制下,能够获得的最大经验值。另一种想法花给定的经验值获得最少的忍耐度的想法是行不通的,下文会讲。AC代码:c#include <iostream>#include <cstring>#include ...原创 2019-04-23 20:01:57 · 135 阅读 · 0 评论 -
HDOJ 1712【ACboy needs your help】
题目链接一题(一遍过的题),分组背包裸题,详见通天之分组背包(pre blog)。//296MS 1456K#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int maxn = 105;int n,W;int ...原创 2019-04-23 21:20:00 · 129 阅读 · 0 评论 -
HDOJ 3449【Consumer】
题目链接存疑:第一种代码为何WA?思路:注意题面没说多组用例,但是实际上是,很坑。依赖背包,即每组中的物品由一个主件和若干附件组成,若买任意附件则必须先买主件。本题中主件价值为零,价格倒是挺贵。首先按照背包九讲中的做法,不知为何WA:对每一组中的物品进行泛化(即先进行一次Sub_Pack,详见背包九讲)。对泛化后的物品进行Main_Pack。(均为01Pack)代码:WA:85...原创 2019-04-24 19:26:18 · 144 阅读 · 0 评论 -
【Common Subsequence】
思路:动态规划LCS问题。注意往后腾一枚空间。核心:for(int i=0;i<l.length();i++) for(int j=0;j<r.length();j++) if(l[i] == r[j]) dp[i+1][j+1] = dp[i][j] + 1; else dp[i+1][j+1] = max(dp[i+1][j] , dp[i][j...原创 2019-07-14 14:53:49 · 127 阅读 · 0 评论