P3515 [POI2011]Lightning Conductor

式子可转化为:$p>=a_j-a_i+sqrt(i-j) (j<i)$

$j>i$的情况,把上式翻转即可得到

下面给一张图证明这是满足决策单调性的

把$a_j+sqrt(i-j)$表示在坐标系上

显然$sqrt(i-j)$的增长速度趋缓

曲线$a$被曲线$b$超过后是无法翻身的

对两个方向进行决策单调性分治,取$max$即可

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int read(){
char c=getchar(); int x=,f=;
while(c<''||c>'') f=f&&(c!='-'),c=getchar();
while(''<=c&&c<='') x=x*+c-,c=getchar();
return f?x:-x;
}
#define N 500005
int n,a[N]; double p1[N],p2[N],w;
void solve1(int l,int r,int dl,int dr){
int m=(l+r)/,dm=dl;
for(int i=dl;i<=m&&i<=dr;++i)
if(p1[m]<(w=a[i]-a[m]+sqrt(m-i)))
p1[m]=w,dm=i;
if(l<m) solve1(l,m-,dl,dm);
if(m<r) solve1(m+,r,dm,dr);
}
void solve2(int l,int r,int dl,int dr){
int m=(l+r)/,dm=dr;
for(int i=dr;i>=m&&i>=dl;--i)
if(p2[m]<(w=a[i]-a[m]+sqrt(i-m)))
p2[m]=w,dm=i;
if(l<m) solve2(l,m-,dl,dm);
if(m<r) solve2(m+,r,dm,dr);
}
int main(){
n=read();
for(int i=;i<=n;++i) a[i]=read();
solve1(,n,,n);
solve2(,n,,n);
for(int i=;i<=n;++i)
printf("%d\n",(int)ceil(max(p1[i],p2[i])));
}

P3515 [POI2011]Lightning Conductor(决策单调性分治)的更多相关文章

  1. P3515 [POI2011]Lightning Conductor[决策单调性优化]

    给定一序列,求对于每一个$a_i$的最小非负整数$p_i$,使得$\forall j \neq i $有$ p_i>=a_j-a_i+ \sqrt{|i-j|}$. 绝对值很烦 ,先分左右情况单 ...

  2. 【BZOJ2216】[Poi2011]Lightning Conductor 决策单调性

    [BZOJ2216][Poi2011]Lightning Conductor Description 已知一个长度为n的序列a1,a2,...,an.对于每个1<=i<=n,找到最小的非负 ...

  3. LOJ2074/2157 JSOI2016/POI2011 Lightning Conductor 决策单调性DP

    传送门 我们相当于要求出\(f_i = \max\limits_{j=1}^{n} (a_j + \sqrt{|i-j|})\).这个绝对值太烦人了,考虑对于\(i>j\)和\(i<j\) ...

  4. BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性

    BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性 Description 已知一个长度为n的序列a1,a2,...,an. 对于每个1<=i<=n, ...

  5. 洛谷P3515 [POI2011]Lightning Conductor(动态规划,决策单调性,单调队列)

    洛谷题目传送门 疯狂%%%几个月前就秒了此题的Tyher巨佬 借着这题总结一下决策单调性优化DP吧.蒟蒻觉得用数形结合的思想能够轻松地理解它. 首先,题目要我们求所有的\(p_i\),那么把式子变一下 ...

  6. 洛谷P3515 [POI2011]Lightning Conductor(决策单调性)

    题意 已知一个长度为n的序列a1,a2,...,an. 对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j)) ...

  7. 洛谷 P3515 [ POI 2011 ] Lightning Conductor —— 决策单调性DP

    题目:https://www.luogu.org/problemnew/show/P3515 决策单调性... 参考TJ:https://www.cnblogs.com/CQzhangyu/p/725 ...

  8. P3515 [POI2011]Lightning Conductor

    首先进行一步转化 $a_j \leq a_i + q - sqrt(abs(i - j))$ $a_i + q \geq a_j + sqrt(abs(i-j))$ 即 $q = max (a_j + ...

  9. [bzoj 2216] [Poi2011] Lightning Conductor

    [bzoj 2216] [Poi2011] Lightning Conductor Description 已知一个长度为n的序列a1,a2,-,an. 对于每个1<=i<=n,找到最小的 ...

随机推荐

  1. Linux下安装Dubbox

    1.Dubbox简介 Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续 ...

  2. 完整项目:网上图书商城(一、MySQL数据库设计)未完

    一.建立数据库 CREATE DATABASE IF NOT EXISTS bookshop CHARACTER utf8; 二.建立数据库表 1.建立用户表 #用户表(用户id号,用户名,用户密码, ...

  3. Kubernetes部署DNS

    前言 阅读地址 http://thoreauz.com/2017/04/16/docker/Kubernetes%E9%83%A8%E7%BD%B2DNS%E5%92%8CDashboard/ Kub ...

  4. Linux 性能测试工具 sysbench 的安装与简单使用

    文章目录 Linux 性能测试工具 sysbench 的安装与简单使用        一 背景        二 实验环境            2.1 操作系统            2.2 其他配 ...

  5. tf.nn.top_k

    评估操作对于测量神经网络的性能是有用的. 由于它们是不可微分的,所以它们通常只是被用在评估阶段 tf.nn.top_k(input, k, name=None) 这个函数的作用是返回 input 中每 ...

  6. LeetCode--051--N皇后(java)-star

    n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案. 每一种解 ...

  7. JS自定义 Map

    <script>function HashMap(){this.map = {};}HashMap.prototype = { put : function(key, value){ th ...

  8. Eclipse 创建springBoot项目的时候需要首先 安装STS(亲测)

    开始我的Eclipse版本是4.4.2.安装网上的步骤多次不成功. 后来直接去下载了最新版的Eclipse 2018-9版本的 是 4.9. 下面是安装步骤: (1)eclipse->Help- ...

  9. 编辑器直接word直接上传word里的图片

    tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...

  10. Activiti介绍(一)

    工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期的业务目标 ...