bzoj4850 [JSOI2016]灯塔

给定一个序列 \(a_i\) ,对于每个 \(i\) ,求出一个 \(p\) 使得对于任意 \(j\) ,都有 \(a_j\leq a_i+p-\sqrt {|i-j|}\)

\(n\leq10^5\)

数论分块


先将原式转化成与 \(p\) 相关的,即 \(p\ge a_j-a_i+\sqrt {|i-j|}\)

根号内上取整,答案不变,即 \(p=\max\{a_j-a_i\lceil\sqrt{|i-j|}\rceil\}\)

可以对根号取值数论分块,每段的贡献即求区间内 \(a_j\) 最大值,用 \(st\) 表 维护即可。

分块区间即为 \(\verb|当前位置|\pm\verb|根号取值|^2\)

时间复杂度 \(O(n\sqrt n)\)

代码

#include <bits/stdc++.h>
using namespace std;const int maxn = 1e5 + 10;
int n, lg[maxn], st[18][maxn];inline int query(int l, int r) {int k = lg[r - l + 1];return max(st[k][l], st[k][r - (1 << k) + 1]);
}int main() {scanf("%d", &n);for (int i = 1; i <= n; i++) {scanf("%d", &st[0][i]);}for (int i = 2; i <= n; i++) {lg[i] = lg[i >> 1] + 1;}for (int i = 1; i <= lg[n]; i++) {for (int j = 1; j + (1 << i) - 1 <= n; j++) {st[i][j] = max(st[i - 1][j], st[i - 1][j + (1 << (i - 1))]);}}for (int i = 1; i <= n; i++) {int ans = 0;for (int k = 1, l = i + 1, r; l <= n; k++, l = r + 1) {r = min(n, i + k * k);ans = max(ans, query(l, r) - st[0][i] + k);}for (int k = 1, r = i - 1, l; r >= 1; k++, r = l - 1) {l = max(1, i - k * k);ans = max(ans, query(l, r) - st[0][i] + k);}printf("%d\n", ans);}return 0;
}

加强版 \(\verb|bzoj2216 [POI2011]Lightning Conductor|\) 留坑待填

转载于:https://www.cnblogs.com/Juanzhang/p/10625045.html

bzoj4850 [JSOI2016]灯塔相关推荐

  1. [bzoj4850][Jsoi2016]灯塔

    来自FallDream的博客,未经允许,请勿转载,谢谢. JSOI的国境线上有N一座连续的山峰,其中第ii座的高度是hi??.为了简单起见,我们认为这N座山峰排成了连续一条 直线.如果在第ii座山峰上 ...

  2. [bzoj4850][贪心]灯塔

    Description JSOI的国境线上有N一座连续的山峰,其中第ii座的高度是hi??.为了简单起见,我们认为这N座山峰排成了连续一条 直线.如果在第ii座山峰上建立一座高度为p(p≥0)的灯塔, ...

  3. bzoj 4850 [Jsoi2016]灯塔

    Description JSOI的国境线上有N一座连续的山峰,其中第ii座的高度是hi??.为了简单起见,我们认为这N座山峰排成了连续一条 直线.如果在第ii座山峰上建立一座高度为p(p≥0)的灯塔, ...

  4. 基础省选+NOI-第4部分 动态规划

    1.期望概率DP [整理]简单的数学期望和概率DP [整理]简单的数学期望和概率DP - nimphy - 博客园 期望&概率dp总结 期望&概率dp总结_十分残念的博客-CSDN博客 ...

  5. 省选+NOI 第一部分 动态规划DP

    期望概率DP [整理]简单的数学期望和概率DP [整理]简单的数学期望和概率DP - nimphy - 博客园 期望&概率dp总结 期望&概率dp总结_十分残念的博客-CSDN博客 期 ...

  6. 退役前的做题记录1.0

    退役前的做题记录1.0 租酥雨最近很懒qwq,具体表现在写题的时候不想发题解了. 但是想想这样也不太好,就决定发个一句话(半句话到几句话不等)题解上来. 2018-09.18-2018-09.28 [ ...

  7. 2020.6月做题记录

    长期计划 SAM专题 date:2020.05.21-2020.06.01 基础类: Problem Finished P3804 [模板]后缀自动机 (SAM) √√√ SP1811 LCS - L ...

  8. 【JSOI2016】【st表/猫树】【枚举】灯塔

    [题目描述] [思路] 这道题也很不错.首先这道题有O(nlog⁡n)O(n\log n)O(nlogn)做法,但是我不会,我就只会O(nn)O(n \sqrt n)O(nn​)+卡常的做法.这道题唯 ...

  9. 一条长度为l的笔直街道 java_如图,在一条笔直的东西向海岸线l上有一长为1.5km的码头MN和灯塔C,灯塔C距...

    如图,在一条笔直的东西向海岸线l上有一长为1.5km的码头MN和灯塔C,灯塔C距码头的东端N有20km.以轮船以36km/h的速度航行,上午10:00在A处测得灯塔C位于轮船的北偏西30°方向,上午1 ...

最新文章

  1. 【python gensim使用】word2vec词向量处理中文语料
  2. 《大数据、小数据、无数据:网络世界的数据学术》一 3.3 社会与技术
  3. bzoj 2157 旅行
  4. python利器的使用-图文详解python开发利器之ulipad的使用实践
  5. jupyter安装插件,以及远程访问服务器上的jupyter notebook
  6. pycharm如何设置注释的字体颜色
  7. HDU1081 (最大连续子序列/矩阵)
  8. Spring JTA multiple resource transactions in Tomcat with Atomikos example--转载
  9. [转载] 七龙珠第一部——第121话 悟空最大的危机
  10. Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)
  11. 132_Power BI之建模必备要素Power Query之数据表字段名称管理
  12. Linux目录结构示意详解图
  13. java 关闭进程_java在进程启动和关闭.exe程序
  14. java 车牌正则表达式_车牌正则表达式
  15. 英语数字听力训练精灵
  16. python用pandas读取txt_python Pandas 读取txt表格的实例
  17. 百度大脑人脸情绪实时识别攻略
  18. Python 第三方模块 科学计算 SymPy模块
  19. android手机diy,手把手教你如何DIY个性定制属于你的安卓手机浏览器
  20. 布鲁斯·塔克曼(Bruce Tuckman)的团队发展阶段模型

热门文章

  1. html数据摘要算法,Hash函数和消息摘要算法(示例代码)
  2. HTML元信息设置方法
  3. ppt中流程图旁边怎么添加_辅食中的黑芝麻酱怎么添加呢?
  4. diy无感无刷电机霍尔安装_霍尔传感器常见的有那几个类别
  5. 小学教师计算机应用培训通讯稿,暑期培训通讯稿
  6. linux java maven_Linux安装java环境和maven
  7. python print return不同_Python中return和print的作用及区别
  8. python输出99乘法表_如何用python输出99乘法表
  9. ubuntu18 mysql5.6源码_Ubuntu 18.04 使用Systemd管理MySQL 5.6
  10. 加密芯片——摘要算法特点与应用注意事项