【链接】 链接

【题意】

在这里输入题意

【题解】

模拟一下样例。
会发现。切的顺序不影响最后的答案。
只要切点确定了。
答案就确定了。
则设f[i][j]表示前i段,第i段保留到j的最大值。
$f[i][j] = max(f[i-1][x] + (s[j]-s[x])*(s[n]-s[j]))$
$s[i] = a[1] + a[2] +...+a[i]$
然后还是考虑x s[n]-s[j]$
而s[n]-s[j]是单调递减的;
这就能加一个斜率优化了。
注意这里是>s[n]-s[j]才y更优。
则队列的出入队和经典的斜率优化条件相反。
最后输出f[k+1][n]就好;
要用滚动数组。不然会MLE.

【错的次数】

在这里输入错的次数

【反思】

在这里输入反思

【代码】

#include <bits/stdc++.h>
#define ll long long
using namespace std; const int N = 1e5,K = 200; int n,k,h,t,dl[N+10];
ll a[N+10],f[2][N+10],s[N+10]; double ju(int i,int x,int y)
{
double fenzi = f[(i-1)&1][y] - f[(i-1)&1][x];
double fenmu = s[y] - s[x];
if (s[y]==s[x]) return 2e9;
return fenzi/fenmu;
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
scanf("%d%d",&n,&k);
for (int i = 1;i <= n;i++) scanf("%lld",&a[i]);
for (int i = 1;i <= n;i++) s[i] = s[i-1] + a[i];
for (int i = 1;i <= k + 1;i++)
{
memset(f[i&1],0,sizeof f[i&1]);
h = t = 1;
dl[1] = 0;
for (int j = 1;j <= n;j++)
{
while (h < t && ju(i,dl[h],dl[h+1]) > s[n]-s[j]) h++;
int x = dl[h];
f[i&1][j] = max(f[i&1][j],f[(i-1)&1][x] + (s[j]-s[x])*(s[n]-s[j]));
while (h < t && ju(i,dl[t-1],dl[t]) < ju(i,dl[t],j)) t--;
dl[++t] = j;
}
}
printf("%lld\n",f[(k+1)&1][n]);
return 0;
}

最新文章

  1. java5
  2. js中 ||的意思,js中 o = o || {};是什么意思呢?
  3. javascript练习-扑克牌
  4. python的类和对象——类成员番外篇
  5. 基于jQuery的简易瀑布流实现
  6. cocoapods ,错误大全
  7. A+B问题 涉及EOF
  8. RTTI、虚函数和虚基类的实现方式、开销分析及使用指导(虚函数的开销很小,就2次操作而已)
  9. web 开发规范
  10. kindle网络爬虫续集
  11. Java开发小技巧(一)
  12. Java面经
  13. Html元素添加事件禁用
  14. (一)MYSQL ERROR 2003 (HY000): Can&#39;t connect to MySQL server on &#39;192.168.10.210&#39; (111) 解决方法
  15. [转]利用ssh传输文件
  16. 【转】 Windows下配置Git
  17. 玩玩 Nginx 1----- Nginx + ngx_lua安装测试【CentOs下】
  18. Docker源码分析(三):Docker Daemon启动
  19. 【转载】在Angular 2/Typescript中声明全局变量的最佳方式是什么?
  20. 了解MapReduce_2

热门文章

  1. pstree---树状图的方式展现进程
  2. [ReasonML] Workshops code
  3. Android线程池(二)——ThreadPoolExecutor及其拒绝策略RejectedExecutionHandler使用演示样例
  4. 请求不携带cookie问题
  5. 一个奇怪的Java集合问题
  6. drawable-图片绘制
  7. Android内存泄露分析之StrictMode
  8. Flask项目之手机端租房网站的实战开发(七)
  9. zeromq and jzmq
  10. Scala具体解释---------数组、元组、映射