斜率dp
文章平均质量分 94
StaroForgin
这个作者很懒,什么都没留下…
展开
-
[海军国际项目办公室]门童
树套树优化dp!!!原创 2021-10-28 12:04:18 · 155 阅读 · 0 评论 -
[SDOI2013]保护出题人
保护出题人 题解 为什么我一点也不想做这道题 题面已经很明晰了,玩过PVZ的都明白,没玩过的建议玩一下。 由于每只僵尸间的间隔都为,而打死每只僵尸需要打死它前面的所有僵尸,故需在这只僵尸到达前造成前面几只僵尸血量和相等的伤害。于是,在第关打死第只僵尸需要的攻击为。 故,第关需要的伤害为。至于上面的求和,可以用前缀和处理,于是就得到一个的算法,可以得到50pts,实际上是60pts。 看到这个式子,应该很容易想到斜率。,记其为与两个点,每次将后面形式的点加入凸包,用栈来进行维护。再讲前面的点在凸包原创 2020-08-25 18:37:41 · 137 阅读 · 0 评论 -
[CF1083]The Fair Nut and Rectangles
The Fair Nut and Rectangles 题解 好板一dp 很明显的一道斜率优化,因为矩阵间不含包含关系,所以当时,一定有。 于是我们先根据数组从小到大排序,得到序列的值一定单调下降的。 很明显可以dp了,令为选择第个矩形且其它所有已选矩形的值都比其小时,最大的价值和。转移方程式易得: 鉴于,的时间复杂度明显过不了此题,考虑优化。 对于点,如果点比点更优,这有 。 明显可以通过斜率来优化。时间复杂度。 源码 #include<bits/stdc++.h原创 2020-08-12 21:29:36 · 192 阅读 · 0 评论 -
[CF311B]Cats Transport
Cats Transport 题解 很水的一道斜率优化呀 首先因为每只猫玩的位置与玩的时间是一定的,故可以将其转化为铲*官带走猫所需要的出发时间。 于是,我们将其排序后得到的单调不下降序列上截取个点,当做其的出发时间。 令为铲*官已有人出发,第人在刚好可以带走第只猫的时间出发时猫们最小的出发时间,容易得到转移方程式: 。用前缀和将表示出来,。 时间复杂度,明显会T,思考优化。 当对于点,点比点更优时 故 又转化成了熟悉的斜率优化的格式,于是,用单调队列维护斜率即可。 时间复原创 2020-08-12 19:36:58 · 181 阅读 · 0 评论 -
[NOI2007]货币兑换
货币兑换 题解 很容易发现,如果在第i天买并在第j天卖时可以得到更多的价值,那我们如果要在j天卖的话,就应该在第i天把钱花完去买股票。 我们设为到第i天时可以得到的最大钱数,这样的话可以得到的两种金券数为 ,。,于是,我们得到。 可以得到。于是对于平面上的,当它被所切时,它的最大截距就是最优的决策。 求得最大截距的方法也很简单,这就相当于维护点之间的一个凸包。对于一个点j,若其左边的线的斜率比它的斜率小,那它斜率的情况肯定是更优的,我们需要将其左移。若右边斜率比他大,就要将其右移。 之后,就只原创 2020-05-09 16:33:29 · 228 阅读 · 0 评论