【bzoj4518】征途
2024-08-29 21:26:22
懒得推式子了,总之是个斜率优化……
先化一下题目要求的式子,再写一下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 ;
}
最新文章
- spring @ExceptionHandler注解方式实现异常统一处理
- JAVA智能设备基于OpenGL的3D开发技术 之AABB碰撞检测算法论述
- linux下DNS设置以及解析顺序
- Wim技术之Wim文件的制作
- HTML 表单提交 的简单代码
- java学习笔记_MIDI_GUI
- 解决VS如何同时打开两个工程(xp和win7)
- 命令行运行android模拟器
- memcached介绍及基本使用
- 洛谷P2617 Dynamic Ranking(主席树,树套树,树状数组)
- SpringBoot打包成war
- SQL入门(1): 创建/查询/更新/连接/视图/SSMS简介
- 18.23 inline函数功能
- 安装vue-cli脚手架构建工具
- 6.移动端App安装包的测试用例
- excel 2007 无法输入中文
- Magnum Kubernetes源码分析(一)
- 【转】Spring项目启动报";Could not resolve placeholder";解决方法
- A simple guide to 9-patch for Android UI
- 在客户端浏览器中点击下载生成excel
热门文章
- 算法训练 Bus Tour
- 【刷题】BZOJ 1001 [BeiJing2006]狼抓兔子
- HDU5115:Dire Wolf——题解+翻译
- UVA.10066 The Twin Towers (DP LCS)
- bzoj1014: [JSOI2008]火星人prefix(splay+hash+二分)
- bzoj1004: [HNOI2008]Cards(burnside引理+DP)
- [zhuan]java发送http的get、post请求
- @RequestParam 注解的使用
- 题解【luoguP3644 [APIO2015]八邻旁之桥】
- NYOJ 737DP