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 · 228 阅读 · 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 · 240 阅读 · 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 · 191 阅读 · 0 评论 -
HDOJ 2159【Fate】
题目链接 二维费用的背包问题,第二维费用即为数量。 要仔细想想如何打背包,本题中只能是:dp[i][j] 这一格代表 最多花 i 忍耐度,最多打 j 个怪 的限制下,能够获得的最大经验值。另一种想法花给定的经验值获得最少的忍耐度的想法是行不通的,下文会讲。 AC代码: c #include <iostream> #include <cstring> #include ...原创 2019-04-23 20:01:57 · 167 阅读 · 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 · 157 阅读 · 0 评论 -
HDOJ 3449【Consumer】
题目链接 存疑:第一种代码为何WA? 思路: 注意题面没说多组用例,但是实际上是,很坑。 依赖背包,即每组中的物品由一个主件和若干附件组成,若买任意附件则必须先买主件。本题中主件价值为零,价格倒是挺贵。 首先按照背包九讲中的做法,不知为何WA:对每一组中的物品进行泛化(即先进行一次Sub_Pack,详见背包九讲)。对泛化后的物品进行Main_Pack。(均为01Pack) 代码: WA:85...原创 2019-04-24 19:26:18 · 191 阅读 · 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 · 184 阅读 · 0 评论
分享