懒得推式子了,总之是个斜率优化……

先化一下题目要求的式子,再写一下dp方程,然后就是很自然的斜率优化了qwq

#include<bits/stdc++.h>
#define N 3005
typedef long long ll;
int n,m,l,r,d[N],q[N];
ll f[N][N],s[N];
inline double slope(int i,int x,int y){
return 1.0*(f[i][x]+s[x]*s[x]-f[i][y]-s[y]*s[y])/(s[x]-s[y]);
}
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
int main(){
n=read();m=read();
for(int i=;i<=n;i++)d[i]=read();
for(int i=;i<=n;i++)s[i]=s[i-]+d[i];
memset(f,0x3f,sizeof(f));f[][]=;
for(int i=;i<=m;i++){
l=;r=;
for(int j=;j<=n;j++){
for(;l<r&&slope(i-,q[l],q[l+])<*s[j];l++);
f[i][j]=f[i-][q[l]]+(s[j]-s[q[l]])*(s[j]-s[q[l]]);
for(;l<r&&slope(i-,q[r],q[r-])>slope(i-,q[r],j);r--);
q[++r]=j;
}
}
printf("%d\n",m*f[m][n]-s[n]*s[n]);
return ;
}

最新文章

  1. spring @ExceptionHandler注解方式实现异常统一处理
  2. JAVA智能设备基于OpenGL的3D开发技术 之AABB碰撞检测算法论述
  3. linux下DNS设置以及解析顺序
  4. Wim技术之Wim文件的制作
  5. HTML 表单提交 的简单代码
  6. java学习笔记_MIDI_GUI
  7. 解决VS如何同时打开两个工程(xp和win7)
  8. 命令行运行android模拟器
  9. memcached介绍及基本使用
  10. 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)
  11. SpringBoot打包成war
  12. SQL入门(1): 创建/查询/更新/连接/视图/SSMS简介
  13. 18.23 inline函数功能
  14. 安装vue-cli脚手架构建工具
  15. 6.移动端App安装包的测试用例
  16. excel 2007 无法输入中文
  17. Magnum Kubernetes源码分析(一)
  18. 【转】Spring项目启动报&quot;Could not resolve placeholder&quot;解决方法
  19. A simple guide to 9-patch for Android UI
  20. 在客户端浏览器中点击下载生成excel

热门文章

  1. 算法训练 Bus Tour
  2. 【刷题】BZOJ 1001 [BeiJing2006]狼抓兔子
  3. HDU5115:Dire Wolf——题解+翻译
  4. UVA.10066 The Twin Towers (DP LCS)
  5. bzoj1014: [JSOI2008]火星人prefix(splay+hash+二分)
  6. bzoj1004: [HNOI2008]Cards(burnside引理+DP)
  7. [zhuan]java发送http的get、post请求
  8. @RequestParam 注解的使用
  9. 题解【luoguP3644 [APIO2015]八邻旁之桥】
  10. NYOJ 737DP