首页 > TAG信息列表 > BZOJ3675

BZOJ3675: [Apio2014]序列分割(斜率优化)

Time Limit: 40 Sec  Memory Limit: 128 MB Submit: 4186  Solved: 1629[Submit][Status][Discuss] Description 小H最近迷上了一个分隔序列的游戏。在这个游戏里,小H需要将一个长度为n的非负整数序列分割成k+1个非空的子序列。为了得到k+1个子序列,小H需要重复k次以下的步

[BZOJ3675] [Apio2014]序列分割

[BZOJ3675] [Apio2014]序列分割 题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3675 https://www.luogu.org/problemnew/show/P3648 Solution 考虑乘法分配律,显然从右到左合并和任意顺序合并本质相同,那么容易得到一个普及组的\(\rm dp\): \[ f[i][j]=\max_{k=1}^{i-1

bzoj3675

题解:首先要明确一件事,就是当分割的方案固定时,无论先分割的哪一段,结果都是不变的,然后能列出dp方程:\(dp[i][j]=max(dp[k][j-1]+(a[i]-a[k])*(a[n]-a[i]))\),a[i]表示前缀和,我们能先枚举第二维,那么每层的dp值只和上一层相关,用滚动数组即可完成,然后对于方程变成了:dp[i]-a[i]