ACM - 背包DP
LP_Cong
Python, Qt C++ Developer ACMer https://github.com/Linzecong
展开
-
HDU - 1203 I NEED A OFFER! (01背包变形)
很简单的一道背包DP变形,概率论要学好呀!不然会想复杂。至少一份offer的概率其实就是1减去一份都收不到的概率。这样子就是背包dp模型了。动归方程用的是收不到的概率原创 2017-08-16 17:13:07 · 250 阅读 · 0 评论 -
Gym - 101889F Fundraising (二维带权最长上升子序列)
题意:二维带权最长上升子序列。解题思路:先对一维排序,然后在第二维做最长上升子序列的NlogN做法,同时维护好权值即可。记得离散化。这里相同的点最好合并一下,方便处理。 #include<bits/stdc++.h>using namespace std;const int MAXN=200005;typedef long long ll;stru...原创 2018-10-13 21:36:12 · 649 阅读 · 0 评论 -
计蒜客 Transport Ship(ACM-ICPC 2018 焦作赛区网络预赛 K)(多重背包装满的方案数)
There are NN different kinds of transport ships on the port. The i^{th}ith kind of ship can carry the weight of V[i]V[i] and the number of the i^{th}ith kind of ship is 2^{C[i]} - 12C[i]−1. How many d...原创 2018-09-15 19:13:53 · 432 阅读 · 0 评论 -
CodeForces - 946D Timetable(分组背包)
Timetabletime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIvan is a student at Berland State University (BSU). There are n days in Berland week, an...原创 2018-03-28 15:41:32 · 302 阅读 · 0 评论 -
POJ - 1947 Rebuilding Roads(树上背包)
Rebuilding RoadsDescriptionThe cows have reconstructed Farmer John's farm, with its N barns (1 <= N <= 150, number 1..N) after the terrible earthquake last May. The cows didn't have time t原创 2017-10-10 15:23:10 · 299 阅读 · 0 评论 -
POJ - 1976 A Mini Locomotive(背包DP)
解题思路:稍作思考,可以转化为背包问题,把连续k节车厢的人数和作为价值,每个车头占一个容量,背包大小为3. 因此有dp[i][j]数组,代表前i节车厢用j个车头去拉能得到的最大价值,相当于背包问题里的,前i个物品用背包容量大小为j的背包去放能获得的最大价值。因此有转移方程,先把a[i]转为前缀和形式原创 2017-08-08 20:29:47 · 330 阅读 · 0 评论 -
POJ - 1276 Cash Machine(三种背包模板)
多重背包裸题,套模板即可,由于多重背包用到了01背包和完全背包,所以这里直接结合三种背包写成一个模板。代码有详细注释。多重背包的解法是用了二进制的思想,把N个物品分解成logN件,他们可以组合出各种各样的物品。详见代码。原创 2017-08-18 13:06:15 · 247 阅读 · 0 评论 -
HDU - 1114 Piggy-Bank (完全背包)
《背包九讲2.0》是个好东西,把里面的东西用上直接过,如果是必须填满,求最小时那么初始化为INF原创 2017-08-16 21:35:42 · 245 阅读 · 0 评论 -
HDU - 1114 Piggy-Bank(01背包变形)
样例很误导人,其实能逃跑的概率并不是简单的相加!如果是这样就会把能抢的钱当做价值,概率当做容量,然后就是个01背包问题。但这样是错的,被抓的概率并不能简单的相加。应该是求能逃跑的概率要大于题目给的(1-被抓的概率),由于是浮点数,概率当做容原创 2017-08-16 20:59:04 · 238 阅读 · 0 评论 -
POJ - 1293 Duty Free Shop(01背包记录物品)
一开始不知道L是拿来干嘛的,后来才发现用于判断能不能全部装满的。一开始先贪心的用M装满尽可能大的空间,这里转化为01背包问题,然后再把剩下的盒子用L装,看看能不能装满。这里主要的难题原创 2017-08-16 20:13:50 · 558 阅读 · 0 评论 -
CodeForces - 981E Addition on Segments(线段树+bitset优化01背包)
E. Addition on Segmentstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGrisha come to a contest and faced the following problem....原创 2018-10-07 21:51:33 · 316 阅读 · 0 评论