knapsack problem
klchen0112
这个作者很懒,什么都没留下…
展开
-
Bone Collector HDU - 2602
背包模板#include<bits/stdc++.h>using namespace std;#define fst first#define sec second#define sci(num) scanf("%d",&num)#define scl(num) scanf("%lld",&num)#define mem(a,b) memset(a,b,s...原创 2019-03-10 18:10:33 · 126 阅读 · 0 评论 -
Team Them Up! POJ - 1112
若两个人两两不认识这两两两一条边,判断是否能够染色。会将其分为多个可以染色的子图,再dp背包使人数尽可能少#include&lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;#include &lt;vector&g原创 2019-03-11 17:33:10 · 214 阅读 · 0 评论 -
Shopping Offers POJ - 1170
多重背包组合物品,将其视为一个。应为总共最多五个物品,将每一种的组合转化为6进制。就可以用一维替代,多维的物品,剩下的就是多重背包了#include&lt;iostream&gt;#include &lt;cstdlib&gt;#include &lt;cstdio&gt;#include &lt;algorithm&gt;#include &lt;ve原创 2019-03-11 17:33:53 · 161 阅读 · 0 评论 -
Robberies HDU - 2955
枚举Mi,算对应的P,取最大概率大于1-P#include&lt;bits/stdc++.h&gt;using namespace std;#define sci(num) scanf("%d",&amp;num)#define scl(num) scanf("%lld",&amp;num)#define mem(a,b) memset(a,b,sizeof a)原创 2019-03-11 17:34:01 · 81 阅读 · 0 评论 -
Least common multiple HDU - 3092
将N分解为素数的和。LCM太大,故使用对数保存lcm#include&lt;bits/stdc++.h&gt;using namespace std;#define first fst#define second sec#define sci(num) scanf("%d",&amp;num)#define scl(num) scanf("%lld",&amp;原创 2019-03-13 16:32:13 · 103 阅读 · 0 评论 -
Jury Compromise POJ - 1015
poj数据不够完善 for (int k = 1; k &lt;= N; k++){ for (int i = M - 1; i &gt;= 0; i--) { for (int j = 0; j &lt;= 2 * fix; j++) { if (DP[i][j] &g...原创 2019-03-13 16:35:29 · 103 阅读 · 0 评论 -
最大报销额 HDU - 1864
基本就是个背包,题意有误是每类物品限额#include&lt;bits/stdc++.h&gt;using namespace std;#define fst first#define sec second#define sci(num) scanf("%d",&amp;num)#define scl(num) scanf("%lld",&amp;num)#d原创 2019-03-13 16:37:59 · 130 阅读 · 0 评论 -
Fruit Ninja ZOJ - 3638
将所有至少的个数和记为sum,对M-sum进行个数有限制的背包#include&lt;bits/stdc++.h&gt;using namespace std;#define fst first#define sec second#define sci(num) scanf("%d",&amp;num)#define scl(num) scanf("%lld",&原创 2019-03-13 16:41:58 · 212 阅读 · 0 评论 -
FATE HDU - 2159
Last Edited: Feb 21, 2019 6:20 PMTags: dynamic programming,hdu,knapsack problem第一维是忍耐度,第二维是杀怪数量,每次枚举杀了几只#include&lt;bits/stdc++.h&gt;using namespace std;#define fst first#define sec second#defi...原创 2019-03-13 16:42:23 · 136 阅读 · 0 评论 -
Diablo III ZOJ - 3769
将多个物品化为一个物品的01背包,注意下组合即可,还有Hand武器如果只有一个也要加入。进行背包要按每种物品的个数从大到小#include &lt;bits/stdc++.h&gt;using namespace std;#define sci(num) scanf("%d",&amp;num)#define mem(a,b) memset(a,b,sizeof a)const in...原创 2019-03-13 16:42:47 · 149 阅读 · 0 评论 -
Coins HDU - 2844
背包,注意更新从大到小#include<bits/stdc++.h>using namespace std;#define fst first#define sec second#define sci(num) scanf("%d",&num)#define scl(num) scanf("%lld",&num)#define mem(a,b) memse...原创 2019-03-10 18:29:11 · 147 阅读 · 0 评论 -
Coloring Brackets CodeForces - 149D
dp[][][][] 第三第四维分别记录两端点颜色stack记录每个位对应匹配位l,r匹配仅需更新内部否则更新l,mch[l]和mch[l]+1,r的值,再由他们更新#include <bits/stdc++.h>using namespace std;#define mem(a,b) memset(a,b,sizeof a)#define sci(num) scan...原创 2019-03-10 18:26:47 · 152 阅读 · 0 评论 -
True Liars POJ - 1417
权值并查集之后就是一个简单的背包之后逆向输出,显然若当前唯一则前置也必定唯一 #include&lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;cstdlib&gt; #in原创 2019-03-11 10:58:13 · 269 阅读 · 0 评论