洛谷P3515 [POI2011]Lightning Conductor(决策单调性)
题意
已知一个长度为n的序列a1,a2,...,an。
对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j))
题解
决策单调性是个好东西
等学会了再滚回来填坑
//minamoto
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[<<],*p1=buf,*p2=buf;
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,:;}
inline int read(){
#define num ch-'0'
char ch;bool flag=;int res;
while(!isdigit(ch=getc()))
(ch=='-')&&(flag=true);
for(res=num;isdigit(ch=getc());res=res*+num);
(flag)&&(res=-res);
#undef num
return res;
}
char sr[<<],z[];int C=-,Z;
inline void Ot(){fwrite(sr,,C+,stdout),C=-;}
inline void print(int x){
if(C><<)Ot();if(x<)sr[++C]=,x=-x;
while(z[++Z]=x%+,x/=);
while(sr[++C]=z[Z],--Z);sr[++C]='\n';
}
const int N=5e5+;
int n,q[N],k[N],a[N];
double p[N];
inline double calc(int i,int j){return a[j]+sqrt(i-j);}
inline int bound(int x,int y){
int l=,r=n,mid,res=r+;
while(l<=r){
mid=l+r>>;
if(calc(mid,x)<=calc(mid,y)) res=mid,r=mid-;
else l=mid+;
}
return res;
}
void work(){
for(int i=,h=,t=;i<=n;++i){
while(h<t&&k[t-]>=bound(q[t],i)) --t;
k[t]=bound(q[t],i),q[++t]=i;
while(h<t&&k[h]<=i) ++h;
cmax(p[i],calc(i,q[h]));
}
}
int main(){
//freopen("testdata.in","r",stdin);
n=read();
for(int i=;i<=n;++i) a[i]=read();
work();
for(int i=;i<=n+-i;++i)
swap(a[i],a[n-i+]),swap(p[i],p[n-i+]);
work();
for(int i=n;i;--i) print(ceil(p[i])-a[i]);
Ot();
return ;
}
洛谷P3515 [POI2011]Lightning Conductor(决策单调性)的更多相关文章
- 洛谷P3515 [POI2011]Lightning Conductor(动态规划,决策单调性,单调队列)
		
洛谷题目传送门 疯狂%%%几个月前就秒了此题的Tyher巨佬 借着这题总结一下决策单调性优化DP吧.蒟蒻觉得用数形结合的思想能够轻松地理解它. 首先,题目要我们求所有的\(p_i\),那么把式子变一下 ...
 - P3515 [POI2011]Lightning Conductor[决策单调性优化]
		
给定一序列,求对于每一个$a_i$的最小非负整数$p_i$,使得$\forall j \neq i $有$ p_i>=a_j-a_i+ \sqrt{|i-j|}$. 绝对值很烦 ,先分左右情况单 ...
 - 【BZOJ2216】[Poi2011]Lightning Conductor 决策单调性
		
[BZOJ2216][Poi2011]Lightning Conductor Description 已知一个长度为n的序列a1,a2,...,an.对于每个1<=i<=n,找到最小的非负 ...
 - LOJ2074/2157 JSOI2016/POI2011 Lightning Conductor 决策单调性DP
		
传送门 我们相当于要求出\(f_i = \max\limits_{j=1}^{n} (a_j + \sqrt{|i-j|})\).这个绝对值太烦人了,考虑对于\(i>j\)和\(i<j\) ...
 - P3515 [POI2011]Lightning Conductor(决策单调性分治)
		
P3515 [POI2011]Lightning Conductor 式子可转化为:$p>=a_j-a_i+sqrt(i-j) (j<i)$ $j>i$的情况,把上式翻转即可得到 下 ...
 - BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性
		
BZOJ_2216_[Poi2011]Lightning Conductor_决策单调性 Description 已知一个长度为n的序列a1,a2,...,an. 对于每个1<=i<=n, ...
 - 洛谷 P3515 [ POI 2011 ] Lightning Conductor —— 决策单调性DP
		
题目:https://www.luogu.org/problemnew/show/P3515 决策单调性... 参考TJ:https://www.cnblogs.com/CQzhangyu/p/725 ...
 - 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 + ...
 - 洛谷 P5897 - [IOI2013]wombats(决策单调性优化 dp+线段树分块)
		
题面传送门 首先注意到这次行数与列数不同阶,列数只有 \(200\),而行数高达 \(5000\),因此可以考虑以行为下标建线段树,线段树上每个区间 \([l,r]\) 开一个 \(200\times ...
 
随机推荐
- HTML5离线应用
			
本地缓存与浏览器缓存 本地缓存是为整个web应用程序服务的而网页缓存值服务与单个网页 本地缓存是为你指定的资源进行缓存,而我们不知道网页缓存会春初哪些内容,他是不安全不可靠的 在没有网络的时候还是可以 ...
 - C语言库在不同系统下的后缀
			
C语言的静态库与动态库对比分析,各有长短 库: 指由标准常用函数编译而成的文件,旨在提高常用函数的可重用性,减轻开发人员负担.常用的sdtio.h,math.h等 库 ...
 - xargs 命令使用小记
			
ls -1|xargs -t -i mv {} noncredit{} 注意: ls -1 是123的1,不是lmn的l
 - IDA Pro权威指南学习笔记(一)
			
一直不懂逆向,最近刚好不忙,于是学习逆向,用来做笔记,顺便和大家分享交流. 参考书籍<IAD PRO权威指南> 工具: PETools: ETools 是另一款很好的PE文件编辑工具,以前 ...
 - Windows Backdoor Tips
			
名称:在用户登录时,运行这些程序 位置: Computer Configuration\\Policies\\Administrative Templates\\System\\Logon\\ 中 d ...
 - C Primer Plus学习笔记(六)- C 控制语句:分支和跳转
			
if 语句: if 语句被称为分支语句(branching statement)或选择语句(selection statement) if 语句的通用形式: if (expression) state ...
 - 深入理解Java虚拟机—JVM内存结构
			
1.概述 jvm内存分为线程共享区和线程独占区,线程独占区主要包括虚拟机栈.本地方法栈.程序计数器:线程共享区包括堆和方法区 2.线程独占区 虚拟机栈 虚拟机栈描述的是java方法执行的动态内存模型, ...
 - java 多线程系列基础篇(八)之join()、start()、run()方法
			
1. join()介绍 join() 定义在Thread.java中.join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行.这句话可能有点晦涩,我们还是通过例子去理解: // 主线程 ...
 - hadoop再次集群搭建(1)-安装系统
			
从8月份到现在12月份,中间有四个月的时间没有学习hadoop系统了.其实适应新的环境,到现在一切尘埃落定,就应该静下心来,好好学习一下hadoop以及我之前很想学习的mahout.个人对算法比较感兴 ...
 - Markdown简要规则
			
We believe that writing is about content, about what you want to say – not about fancy formatting. 我 ...