题目

解析

很容易想到的 \(dp\):

设 \(f_i\) 表示已经处理完 \(1..i\) 并且 \(i\) 是直接复制的需要的最小花费

那么 \(f_i=f_j+(i-j) \times (i-j-1)+c_i\)

这就是经典的斜率优化 \(dp\),一般我们考虑两个决策谁会更优

考虑 \(j,k\) 两个决策,那么我们可以列个不等式,把它化成只关于 \(j\) 的式子和只关于 \(k\) 的式子放一边,剩下的放一边

再写成斜率的形式,具体分析怎么维护

式子如下:

\[\frac{2f_j+j^2+j-2f_k-k^2-k}{2j-2k} < i
\]

小于号维护下凸壳,斜率和横坐标都单调增,可以用单调队列维护

\(Code\)

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long LL; const int N = 1e6 + 5;
const LL INF = 1e15;
int n;
LL f[N] , c[N] , q[N]; inline double slope(int x , int y)
{
return (2.0 * f[y] + 1.0 * y * y + y - (2.0 * f[x] + 1.0 * x * x + x)) / (2.0 * y - 2.0 * x);
}
int main()
{
scanf("%d" , &n);
for(register int i = 1; i <= n; i++) scanf("%lld" , c + i);
int h = 1 , t = 1;
q[h] = 0;
for(register int i = 1; i <= n; i++)
{
while (h < t && slope(q[h] , q[h + 1]) < i) h++;
f[i] = f[q[h]] + (LL)(i - q[h]) * (i - q[h] - 1) / 2 + c[i];
while (t > h && slope(q[t - 1] , q[t]) > slope(q[t] , i)) t--;
q[++t] = i;
}
printf("%lld\n" , f[n]);
}

JZOJ 3432. 【GDOI2014模拟】服务器的更多相关文章

  1. 【GDOI2014模拟】JZOJ2020年8月14日提高组 服务器

    [GDOI2014模拟]JZOJ2020年8月14日提高组 服务器 题目 Time and Memory Limits Description 我们需要将一个文件复制到n个服务器上,这些服务器的编号为 ...

  2. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  3. WEB开发:如何用js来模拟服务器的ajax响应,不依赖服务器来编写前端代码

    一.问题的提出 目前web前端开发,主流的思路是: 1)编写静态的html文件(不使用模板技术,与服务器无关) 2)页面通过ajax与服务器交互,进行数据的传输,数据格式为json格式 这里存在一个问 ...

  4. Fiddler 使用fiddler发送捕获的请求及模拟服务器返回

    使用fiddler发送捕获的请求及模拟服务器返回 by:授客 QQ:1033553122 1.做好相关监听及代理设置 略 2.发送捕获的请求 如图 3.模拟服务器返回 本例的一个目的是,根据服务器返回 ...

  5. C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法

    C#调用接口注意要点   在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...

  6. 本地模拟服务器CDN(静态HTML,CSS,JS)开发

    本地模拟服务器CDN(静态HTML,CSS,JS)开发 所谓本地开发环境就是和线上cdn(a.longencdn.cn)一样的目录结构和功能,提供了一个本地镜像,开发者直接在本地镜像的对应目录中作开发 ...

  7. 小程序犯错(一):“ReferenceError: 模拟服务器传来的数据 is not defined”

    学习数据绑定,在onLoad中模拟服务器传数据时,报错:模拟服务器传来的数据 is not defined 我这里粗心的忘记注释说明了,如下: 把该行无关的错误数据注释或删除即可.这里提醒同学们,出现 ...

  8. JZOJ【NOIP2013模拟联考14】隐藏指令

    JZOJ[NOIP2013模拟联考14]隐藏指令 题目 Description 在d维欧几里得空间中,指令是一个长度为2N的串.串的每一个元素为d个正交基的方向及反方向之一.例如,d = 1时(数轴) ...

  9. 【GDOI2014模拟】JZOJ2020年8月14日T2 网格

    [GDOI2014模拟]JZOJ2020年8月14日T2 网格 题目 Time and Memory Limits Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标 ...

  10. 16.PHP_Ajax模拟服务器登录验证

    Ajax模拟登陆验证 index.php <script language="javascript">    var http_request = false;     ...

随机推荐

  1. 解决"VLC 无法打开 MRL「screen://」。详情请检查日志" 问题

    问题描述 vlc 抓取桌面视频报这个错误 解决 sudo apt-get install vlc-plugin-access-extra 其他 不一定每次都在图形化界面调用,也可以直接在终端输入 vl ...

  2. 【Shell案例】【awk、grep、sort、uniq】10、第二列是否有重复

    给定一个 nowcoder.txt文件,其中有3列信息,如下实例,编写一个shell脚本来检查文件第二列是否有重复,且有几个重复,并提取出重复的行的第二列信息:实例:20201001 python 9 ...

  3. 互联网最全cka真题解析-2022

    1.CKA真题解析kubectl自动补全及帮助信息1.配置kubectl自动补全apt install bash-completion source <(kubectl completion b ...

  4. .NET 6 中外部引用项目NU1105异常问题解决

    .NET 6 Project中,添加了其他解决方案的工程后,本地能编译通过,代码签入后,其他同事下载代码,编译报错: 错误 NU1105 找不到"E:\Teld\01Code\TTP_CTP ...

  5. 【Redis场景1】用户登录注册

    细节回顾: 关于cookie和session不熟悉的朋友: 建议阅读该博客:https://www.cnblogs.com/ityouknow/p/10856177.html 执行流程: 在单体模式下 ...

  6. pytest.ini配置文件格式

    [pytest] # 命令行参数,用空格分隔 addopts = -v -n=2 # 配置测试用例所在文件夹 testpaths = ./pytest_1 # 配置需要执行的模块文件名称 python ...

  7. [OpenCV实战]22 使用EigenFaces进行人脸重建

    目录 1 背景 1.1 什么是EigenFaces? 1.2 坐标的变化 2 面部重建 2.1 计算新面部图像的PCA权重 2.2 使用EigenFaces进行面部重建 3 参考 在这篇文章中,我们将 ...

  8. 我的基于 JamStack 的新博客

    概述 今天心血来潮,介绍一下我的新博客站点 -- https://EWhisper.cn. 我是做基础平台 PaaS 运维和架构的,挺喜欢把工作中学到的新知识写下来.记笔记,突然有一天就抱着「资源共享 ...

  9. ArcEngine开发 - 打开地图读取图层

    地图文档(IMapDocument)对象是ArcEngine开发最基本对象,可以说是所有操作的第一步.使用IMapDocument可以检查和打开地图文档,读取图层信息和文档信息,为源GIS并为您详细分 ...

  10. 03-Verilog语法

    Verilog语法 1 Register 组合逻辑-->寄存器-->组合逻辑-->寄存器 Register是一个变量,用于存储值,并不代表一个真正的硬件DFF. reg A,C; / ...