
斜率优化dp
stargazer.
夜を穿つの
展开
-
【UOJ #88】【集训队互测2015】Robot(线段树分治 / 斜率优化 / 李超树)
传送门对于函数fi=kix+bif_i=k_ix+b_ifi=kix+bi求最大或最小显然是李超树板子考虑对时间线段树分治一下然后再在线段树内求最大最小值把值列出来发现是一个斜率优化的式子分别对最大/小值维护上/下凸壳即可注意对于最小值,第一个点显然就是在−∞-\infty−∞处最小的所以按斜率优化中的横坐标从大到小即从右往左做考虑建凸包时要先排序可以先最开始的时候排一次...原创 2020-04-14 22:00:20 · 377 阅读 · 0 评论 -
【LOJ#2249】「NOI2014」购票(点分治+斜率优化DP)
传送门显然的斜率优化DPDPDP第一眼想到的是用可持久化数组维护单调栈但是觉得懒得写就放弃了点分治后用重心向上的链更新重心子树感觉也可以看做树上CDQCDQCDQ一样的东西代码写的我自己很丑#include<bits/stdc++.h>using namespace std;#define cs const#define re register#define pb...原创 2019-11-07 22:12:03 · 187 阅读 · 0 评论 -
【BZOJ1492】【NOI2007】—Cash(cdq分治维护凸包优化斜率dp)
传送门考虑令f[i]f[i]f[i]为第iii天得到的最多的AAA券,g[i]g[i]g[i]为第iii天得到的最多的BBB券则g[i]=f[i]/rate[i]g[i]=f[i]/rate[i]g[i]=f[i]/rate[i]那显然有个n2dpn^2dpn2dp,暴力枚举前一天转移但显然这样得不到满分考虑如果前面i,ji,ji,j两天对于决策nownownow的影响,如果iii比jj...原创 2019-03-06 17:27:19 · 241 阅读 · 0 评论 -
【BZOJ4518】【SDOI2016】—征途(斜率优化dp)
传送门题意:有nnn个数,要把这些数分成连续的mmm段使方差最小由于s2=∑i=1n(d−di)2ms^2=\frac{\sum_{i=1}^{n}(d-d_i)^2}{m}s2=m∑i=1n(d−di)2则s2∗m2=m∗∑i=1n(d−di)2s^2*m^2=m*\sum_{i=1}^{n}(d-d_i)^2s2∗m2=m∗∑i=1n(d−di)2令sumk=∑i=1kdis...原创 2019-03-25 20:28:58 · 175 阅读 · 0 评论 -
【BZOJ2726】【SDOI2012】—任务安排(斜率优化dp)
传送门有一个显然的O(n2)dpO(n^2)dpO(n2)dpf[i]f[i]f[i]表示前iii天的最小花费tottottot是费用的前缀和ttt是时间的前缀和f[i]=min(f[j]+(totn−totj)∗(s+ti−tj))f[i]=min(f[j]+(tot_n-tot_j)*(s+t_i-t_j))f[i]=min(f[j]+(totn−totj)∗(s+ti−tj...原创 2019-04-04 17:19:13 · 167 阅读 · 0 评论 -
【BZOJ3156】—防御准备(斜率优化)
传送门水题随便推个式子斜率优化就完了#include<bits/stdc++.h>using namespace std;const int N=1000005;#define int long long#define gc getcharinline int read(){ char ch=gc(); int res=0,f=1; while(!isdigit...原创 2019-07-24 09:07:15 · 140 阅读 · 0 评论