Time Limit: 4 Sec  Memory Limit: 64 MB
Submit: 5706  Solved: 2876
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

4
-1 10 -20
2 2 3 4

Sample Output

9

HINT

似乎逐渐掌握了斜率优化的规律,,,

f[i]=max{f[j]+a*(sum[i]-sum[j])2+b*(sum[i]-sum[j]+c}

斜率优化,设k<j<i,且j比k更优

\[f[i]-f[k]+a(s[j]^{2}-s[k]^{2})+b(s[k]-s[j])>2a\times s[i]\times (s[j]-s[k])\]

化为:(注意a为负数!!!要变号)

\[\frac{f[i]-f[k]+a(s[j]^{2}-s[k]^{2})+b(s[k]-s[j])}{2a(s[j]-s[k])}<s[i]\]

 #include<iostream>
#include<cstdio>
using namespace std; #define LL long long
#define sqr(x) ((x)*(x))
const int MAXN=; int n,a,b,c;
int l,r,q[MAXN];
LL f[MAXN],s[MAXN]; LL cal(LL x)
{
return a*sqr(x)+b*x+c;
} double slope(int k,int j)
{
return (double)(f[j]-f[k]+a*(sqr(s[j])-sqr(s[k]))+b*(s[k]-s[j]))/(*a*(s[j]-s[k]));
} int main()
{
scanf("%d",&n);
scanf("%d%d%d",&a,&b,&c);
for(int i=;i<=n;i++)
{
int x;
scanf("%d",&x);
s[i]=s[i-]+x;
}
for(int i=;i<=n;i++)
{
while(l<r&&slope(q[l],q[l+])<s[i]) l++;
int t=q[l];
f[i]=f[t]+cal(s[i]-s[t]);
while(l<r&&slope(q[r],i)<slope(q[r-],q[r])) r--;
q[++r]=i;
}
printf("%lld",f[n]);
return ;
}

1911: [Apio2010]特别行动队的更多相关文章

  1. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  2. bzoj 1911 [Apio2010]特别行动队(斜率优化+DP)

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 3191  Solved: 1450[Submit][Statu ...

  3. BZOJ 1911: [Apio2010]特别行动队( dp + 斜率优化 )

    sum为战斗力的前缀和 dp(x) = max( dp(p)+A*(sumx-sump)2+B*(sumx-sump)+C )(0≤p<x) 然后斜率优化...懒得写下去了... ------- ...

  4. bzoj 1911: [Apio2010]特别行动队 -- 斜率优化

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MB Description Input Output Sample Input 4 ...

  5. bzoj 1911: [Apio2010]特别行动队

    #include<cstdio> #include<iostream> #define M 1000009 #define ll long long using namespa ...

  6. 【BZOJ】1911: [Apio2010]特别行动队(斜率优化dp)

    题目 传送门:QWQ 分析 用$ dp[i] $ 表示前 i 个人组成的战斗力之和 然后显然$ dp[i]=Max (  dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum ...

  7. 1911: [Apio2010]特别行动队(斜率优化)

    链接 思路 斜率优化dp. 代码 #include<cstdio> #include<algorithm> #include<cstring> #include&l ...

  8. bzoj 1911: [Apio2010]特别行动队【斜率优化dp】

    仔细想想好像没学过斜率优化.. 很容易推出状态转移方程\( f[i]=max{f[j]+a(s[i]-s[j])^2+b(s[i]-s[j])+c} \) 然后考虑j的选取,如果选j优于选k,那么: ...

  9. bzoj1911[Apio2010]特别行动队 斜率优化dp

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 5057  Solved: 2492[Submit][Statu ...

随机推荐

  1. 安装php过程中的错误和解决方式 configure: error: jpeglib.h not found

    centos6.5 32位系统: checking for the location of libpng... yeschecking for the location of libXpm... no ...

  2. Vue axios 中提交表单数据(含上传文件)

    伟大的画家都是先从模仿开始 的,我写的不好,很多还是抄袭,就是想提高自己的水平,没准坚持下来,我就变成一个厉害的角色了呢?

  3. CMD当前代码页修改

    python3.x在程序开发中统一的编码是 UTF-8,但是进行交互式编程的时候会经常遇到乱码问题,这是因为Window cmd的默认编码是GBK.与程序采用的 UTF-8 不一致造成的中文及特殊字符 ...

  4. Android的网络通信

    Android平台有三种网络接口可以使用,他们分别是:java.net.*(标准Java接口).Org.apache接口和Android.net.*(Android网络接口).大多数的Android应 ...

  5. Nodejs 连接 mysql时报错 Error: Cannot enqueue Query after fatal error

    解决办法,参考:https://github.com/chill117/express-mysql-session/issues/18 我们只需在实例化SessionStore的时候,配置useCon ...

  6. Linux Bash 命令行快捷键小结

    编辑命令          光标移动                                                                        剪切.删除 Ctrl ...

  7. .net 中的托管与非托管

    托管代码 托管代码就是Visual Basic .NET和C#编译器编译出来的代码.编译器把代码编译成中间语言(IL),而不是能直接在你的电脑上运行的机器码.中间语言被封装在一个叫程序集(assemb ...

  8. Cmd命令 关机

    at 22:00 Shutdown -s 到了22点电脑就会出现"系统关机"对话框,默认有30秒钟的倒计时并提示你保存工作 Shutdown.exe -s -t 3600 这里表示 ...

  9. Android 超简单的拖动按钮 悬浮按钮 吸附按钮

    第一种    第二种    第一种实现方法 xml布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/re ...

  10. Cocos2d-x v3.1 安装图文教程(二)

       Cocos2d-x v3.1 安装图文教程(二) 如果我们需要在Android平台上运行就必须安装android的SDK,如果我们只想在window上运行就只需要安装Cocos2d-x就行了.当 ...