BZOJ3675 & 洛谷3648 & UOJ104:[Apio2014]序列分割——题解
2021-04-15 05:26
标签:维护 printf 忽略 证明 block 固定 步骤 name 元素 https://www.lydsy.com/JudgeOnline/problem.php?id=3675 https://www.luogu.org/problemnew/show/P3648 http://uoj.ac/problem/104 PS:题面与题解针对于洛谷与uoj版本,bzoj请自觉把“输出做法”删去。 参考:洛谷题解(虽然不算参考emmm只是斜率优化写跪了来debug用的)。 不难证出只要分割点固定那么答案固定,因此O(kn^2)不难想。 令s[i]表示前i项前缀和,那么我们有: f[k][i]=max(f[k][i],f[k-1][j]+(s[i]-s[j])*s[j]) 这个式子显然可以斜率优化,维护一个单调不增序列,令k 忽略f的前一维,则当f[k]+(s[i]-s[k])*s[k] 所以g[k,j]=(f[k]-f[j]+sqr(s[j])-sqr(s[k]))/(s[j]-s[k]) 同时考虑g[k,j]>=g[j,i]时把j弹出,给出证明。 显然当g[j,i] 当g[k,j]>=g[j,i]>s[i]时k比j优仍然把j弹出。 //我还naive的想要维护单调不减序列结果各种奇葩错误emmm…… +++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233。 + +欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+ +++++++++++++++++++++++++++++++++++++++++++ BZOJ3675 & 洛谷3648 & UOJ104:[Apio2014]序列分割——题解 标签:维护 printf 忽略 证明 block 固定 步骤 name 元素 原文地址:https://www.cnblogs.com/luyouqi233/p/8893754.html
#include
文章标题:BZOJ3675 & 洛谷3648 & UOJ104:[Apio2014]序列分割——题解
文章链接:http://soscw.com/index.php/essay/75920.html