morejarphone~

从爱好,到梦想

codeforces 730J (01背包)

题目链接:点击这里题意:给出n个杯子的容量和杯内水的体积,问最少多少个杯子能够装下所有的水,以及在这个杯子数量下最少需要倒多少体积。需要的最少杯子数很好求,按照体积排个序扫一遍就能知道。然后选择某些杯子,倒水总体积就是水的总体积减去这些选中杯内的水。所以我们要在选中杯子的总容积大于等于水的总体积的...

2016-10-25 20:28:37

阅读数:707

评论数:0

HDU 5445 (多重背包)

题目链接:点击这里题意: 有n个物品, m个卡车. 已知每种物品的能量, 体积和数量还有每种卡车的体积, 花费和数量, 求至少得到p能量的最少的卡车花费. 物品装卡车的时候能够切开装.两次多重背包, 第一次求出至少的到p能量的最少体积, 第二次求出每一种花费下最多能够装多少体积, 然后遍历一遍就好...

2016-06-30 17:50:54

阅读数:171

评论数:0

HDU 1011 (树背包)

坑点是特判。 #include using namespace std; #define maxn 111 #define maxm 222 struct node { int from, to, next; }edge[maxm]; int bug[maxn], brain[max...

2015-11-18 16:19:06

阅读数:177

评论数:0

HDU 5534 (多重背包)

题意是让你构造一棵树使得这棵树的价值最大。树的价值等于节点价值的和,节点的价值等于度数i的函数f(i)。 首先n个点的树只需要总度数为2×n-2并且每个点的度数都为正那么这棵树肯定存在。 很容易想到的是用一个二维的DP去搞,DP[i][j]表示已经搞了i个点总共用j度的最大价值。但是这样要枚举...

2015-11-17 23:27:22

阅读数:276

评论数:0

HDU 2191 (多重背包)

水题,还可以用滚动数组~ #include using namespace std; #define maxn 1111 #define INF 11111111 int dp[111]; //花i钱的最大收益 int tot, n, m, sum; struct node { i...

2015-11-17 19:04:48

阅读数:199

评论数:0

HDU 2844 (多重背包)

题意是给你n个价值和对应的数量,问1到m之内有多少价值可以构造出来。 很裸的多重背包。 #include using namespace std; #define maxn 111111 bool dp[maxn]; int a[maxn]; int p[maxn], tot, n, m;...

2015-11-17 17:41:20

阅读数:217

评论数:0

HDU5119(DP)

求n个数,取出其中若干个使其异或和大于等于m的方案数。 有个简单的优化就是把当前异或到得所有的结果存起来。 #include #include #include #include #include using namespace std; const long long maxn = 1...

2015-10-07 19:24:33

阅读数:407

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭