随笔分类 -  动态规划之斜率优化dp

摘要:题解:带删点的维护凸包,1.删点2.查询凸包周长 题解:倒着做就成了带加点的维护凸包,加点时维护一下周长就没了 // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC optimize(4) // pragma GCC op 阅读全文
posted @ 2019-04-04 20:18 walfy 阅读(169) 评论(0) 推荐(0)
摘要:题意略 题解:可以列出dp方程$dp[i]=max(dp[j] {\frac{a[i] c[j]+b[i]}{a[j] c[j]+b[j]}}$,化简可以得到$\frac{dp[i]}{b[i]}=\frac{a[i]}{b[i]} \frac{dp[j] c[j]}{a[j] c[j]+b[j]} 阅读全文
posted @ 2019-04-04 19:07 walfy 阅读(211) 评论(0) 推荐(0)
摘要:题解:首先要明确一件事,就是当分割的方案固定时,无论先分割的哪一段,结果都是不变的,然后能列出dp方程:$dp[i][j]=max(dp[k][j 1]+(a[i] a[k]) (a[n] a[i]))$,a[i]表示前缀和,我们能先枚举第二维,那么每层的dp值只和上一层相关,用滚动数组即可完成,然 阅读全文
posted @ 2019-02-24 09:56 walfy 阅读(193) 评论(0) 推荐(0)
摘要:农夫John准备扩大他的农场,他正在考虑N (1 increase,Y decrease so dp[i]=min(dp[j]+p[i].fi p[j+1].se); / Problem: 1597 User: walfy Language: C++ Result: Accepted Time:14 阅读全文
posted @ 2018-07-06 14:01 walfy 阅读(148) 评论(0) 推荐(0)
摘要:https://www.lydsy.com/JudgeOnline/images/1911_1.jpg 题解:斜率优化dp,斜率优化的状态都很明显,就是关于x的函数f(x) 关于y的函数g(y),然后f(x)单调即可斜率优化,这题就是dp【i】表示选前i的最优方案; 转移方程:dp[i]=dp[j] 阅读全文
posted @ 2018-06-03 23:10 walfy 阅读(152) 评论(0) 推荐(0)
摘要:题意:给定上一棵树,然后每条边有一个权值,然后每个点到 1 的距离有两种,第一种是直接回到1,花费是 dist(1, i)^2,还有另一种是先到另一个点 j,然后两从 j 向1走,当然 j 也可以再向 k,一直到1,但经过一个点,那么就会出多一个花费 p,问你每个点到 1 的最小距离的最大值是多少。 阅读全文
posted @ 2018-05-03 11:54 walfy 阅读(404) 评论(0) 推荐(0)
摘要:https://www.lydsy.com/JudgeOnline/problem.php?id=1096 中文题意不说了, dp【i】表示从1到i所有产品都能放,而且第i个地方一定建仓库的最小费用,转移方程dp[i]=min(dp[j]+Σ(j<k<=i)x[i]-x[k])*p[k](1<=j< 阅读全文
posted @ 2018-04-27 22:58 walfy 阅读(168) 评论(0) 推荐(0)
摘要:P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的。同时如果一 阅读全文
posted @ 2018-04-12 23:16 walfy 阅读(217) 评论(0) 推荐(0)