斜率优化
fnliren
一位无名没脑老年退役oier
展开
-
[bzoj 1911--Apio2010]特别行动队
这道题,一看就知道是dp了,但范围之大提醒着我们这道题并不简单。对,这题要用斜率优化,还比较容易的那种。 先设i>j>k, f[j]+a*(sum[j]-sum[i])^2+b*(sum[j]-sum[i])+c>=f[k]+a*(sum[k]-sum[i])^2+b*(sum[k]-sum[i])+c 化简得 [(f[j]+a*sum[j]^2-b*sum[j])-(f[k]+a*sum[原创 2017-12-31 10:27:29 · 1037 阅读 · 1 评论 -
[bzoj 3437]小P的牧场
小P在MC里有n个牧场,自西向东呈一字形排列(自西向东用1…n编号),于是他就烦恼了:为了控制这n个牧场,他需要在某些牧场上面建立控制站,每个牧场上只能建立一个控制站,每个控制站控制的牧场是它所在的牧场一直到它西边第一个控制站的所有牧场(它西边第一个控制站所在的牧场不被控制)(如果它西边不存在控制站,那么它控制西边所有的牧场),每个牧场被控制都需要一定的花费(毕竟在控制站到牧场间修建道路是需要资源原创 2018-01-02 14:06:37 · 604 阅读 · 0 评论 -
[bzoj 3156]防御准备
这道题一看就是dp,不过数据范围让我们不能O(n^2),所以就要优化。dp方程为f[i]=min(f[j]+(i-j)*(i-j-1)/2+a[i]),这种形式便想到了斜率优化。 设i>j>k,j比k优 f[j]+(i-j)* (i-j-1)/2+a[i]< f[k]+(i-k)* (i-k-1)/2+a[i] 化得 [(f[j]+j* (j+1)/2)-(f[k]+k* (k+1)/2)]原创 2018-01-21 08:44:32 · 247 阅读 · 0 评论 -
[bzoj 3675--Apio2014]序列分割
小H最近迷上了一个分隔序列的游戏。在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列。为了得到k+1个子序列,小H需要重复k次以下的步骤: 1.小H首先选择一个长度超过1的序列(一开始小H只有一个长度为n的序列——也就是一开始得到的整个序列); 2.选择一个位置,并通过这个位置将这个序列分割成连续的两个非空的新序列。 每次进行上述步骤之后,小H将会得到一原创 2018-01-21 11:32:43 · 223 阅读 · 0 评论 -
[bzoj 4518--SDOI2016]征途
Pine开始了从S地到T地的征途。 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站。 Pine计划用m天到达T地。除第m天外,每一天晚上Pine都必须在休息站过夜。所以,一段路必须在同一天中走完。 Pine希望每一天走的路长度尽可能相近,所以他希望每一天走的路的长度的方差尽可能小。 帮助Pine求出最小方差是多少。 设方差是v,可以证明,v×m^2是一个整数。...原创 2018-03-18 15:36:20 · 359 阅读 · 0 评论 -
[bzoj 4709--Jsoi2011]柠檬
Flute很喜欢柠檬。它准备了一串用树枝串起来的贝壳,打算用一种魔法把贝壳变成柠檬。贝壳一共有 N (1 ≤ N ≤ 100,000)只,按顺序串在树枝上。为了方便,我们从左到右给贝壳编号 1…N。每只贝壳的大小不一定相同,贝壳 i 的大小为 si(1 ≤ si ≤10,000)。变柠檬的魔法要求,Flute 每次从树枝一端取下一小段连续的贝壳,并选择一种贝壳的大小 s0。如果 这一小段贝壳中 ...原创 2019-04-05 14:10:31 · 340 阅读 · 0 评论