题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1911

相当明显的斜率优化,很好做;

注意slp里面要有(double),以免出现精度问题。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int const maxn=1e6+;
ll n,a,b,c,s[maxn],q[maxn],f[maxn];
ll y(int i){return f[i]+a*s[i]*s[i]-b*s[i];}
double slp(int i,int j){return (double)(y(j)-y(i))/(s[j]-s[i])//a;}//在这里/2/a
int main()
{
scanf("%lld%lld%lld%lld",&n,&a,&b,&c);
for(int i=;i<=n;i++)
scanf("%lld",&s[i]),s[i]+=s[i-];
int head=,tail=;
for(int i=;i<=n;i++)
{
while(head<tail&&slp(q[head],q[head+])<=s[i])head++;//则这里没有*2*a,否则需要区分a的正负
int j=q[head];
double tmp=s[i]-s[j];
f[i]=f[j]+a*tmp*tmp+b*tmp+c;
while(head<tail&&slp(q[tail-],q[tail])>slp(q[tail-],i))tail--;//
q[++tail]=i;
}
printf("%lld",f[n]);
return ;
}

最新文章

  1. java并发编程(十七)Executor框架和线程池
  2. C算法编程题系列
  3. AE开发实现Spatial Join Analysis
  4. Oracle 中循环遍历某张表,并对符合条件的进行Update操作
  5. 搭建appium的android环境
  6. hdu 2899 Strange fuction
  7. android中ListView点击和里边按钮点击不能同时生效问题解决
  8. TSC打印机使用教程终极版
  9. python中type dtype astype 的用法
  10. Java 程序国际化
  11. sqlmap的安装
  12. Python 递归 Resursion()
  13. Jquery实现轮播效果图
  14. JS原生实现视频弹幕Demo(仿)
  15. c#帮助文档chm打不开的问题
  16. 洛谷 P4656: LOJ 2484: [CEOI2017]Palindromic Partitions
  17. Mac Vim 编辑器
  18. Oracle12c中性能优化新特性之新增APPROX_COUNT_DISTINCT 快速唯一值计数函数
  19. 初学SQL语句练习2
  20. 使用area标签实现标签的嵌套

热门文章

  1. 利用jquery实现向左滚动效果及offset的使用
  2. go语言学习之路四:字典
  3. open-falcon的插件机制
  4. OHIFViewer meteor build 问题
  5. [原创]安装Ubuntu Server 14.04后
  6. JS创建对象几种不同方法具体解释
  7. BZOJ 2809 APIO 2012 dispatching 平衡树启示式合并
  8. react 实现pure render的时候,bind(this)隐患
  9. ngnix
  10. javascript之scrollTop