bzoj2216: [Poi2011]Lightning Conductor
来源:互联网 发布:苹果电脑重装mac系统 编辑:程序博客网 时间:2024/05/21 18:48
这题挺妙的,hzwer
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>#include<queue>using namespace std;int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int n;int a[500005];double f[500005],g[500005];struct data{int l,r,p;}q[500005];double cal(int j,int i){ return a[j]+sqrt(abs(i-j))-a[i];}int find(data t,int x){ int l=t.l,r=t.r; while(l<=r) { int mid=(l+r)>>1; if(cal(t.p,mid)>cal(x,mid)) l=mid+1; else r=mid-1; } return l;}void dp(double *F){ int head=1,tail=0; for(int i=1;i<=n;i++) { q[head].l++; if(head<=tail&&q[head].r<q[head].l)head++; if(head>tail||cal(i,n)>cal(q[tail].p,n)) { while(head<=tail&&cal(q[tail].p,q[tail].l)<cal(i,q[tail].l)) tail--; if(head>tail) q[++tail]=(data){i,n,i}; else { int t=find(q[tail],i); q[tail].r=t-1; q[++tail]=(data){t,n,i}; } } F[i]=cal(q[head].p,i); }}int main(){ n=read(); for(int i=1;i<=n;i++)a[i]=read(); dp(f); for(int i=1;i<=n/2;i++)swap(a[i],a[n-i+1]); dp(g); for(int i=1;i<=n;i++) printf("%d\n",max(0,(int)ceil(max(f[i],g[n-i+1])))); return 0;}
阅读全文
0 0
- 【POI2011】【BZOJ2216】Lightning Conductor
- 【bzoj2216】 [Poi2011]Lightning Conductor
- BZOJ2216 [Poi2011]Lightning Conductor
- BZOJ2216: [Poi2011]Lightning Conductor
- BZOJ2216: [Poi2011]Lightning Conductor
- 【bzoj2216】[Poi2011]Lightning Conductor
- bzoj2216: [Poi2011]Lightning Conductor
- bzoj2216: [Poi2011]Lightning Conductor 决策单调性
- [BZOJ2216][POI2011]Lightning Conductor && 1D1D
- 【bzoj2216】[Poi2011]Lightning Conductor 决策单调性+整体二分
- [BZOJ2216][Poi2011]Lightning Conductor(dp+决策单调性)
- bzoj2216 Lightning Conductor
- 2216: [Poi2011]Lightning Conductor
- bzoj 2216: [Poi2011]Lightning Conductor
- BZOJ 2216: [Poi2011]Lightning Conductor
- BZOJ2216 Lightning Conductor 决策单调性
- BZOJ 2216 Poi2011 Lightning Conductor 动态规划
- 2216: [Poi2011]Lightning Conductor DP+决策单调性
- 基于HTML5的PACS HTML5图像处理(7)实现客户端JS调整窗宽窗位
- 浅谈语义网络
- Struts2自定义拦截器
- hadoop启动start-all.sh,slave节点没有datanode的问题
- 实现顺序表各种基本运算算法
- bzoj2216: [Poi2011]Lightning Conductor
- HDFS写数据
- 利用GsonFormat+FastJson对复杂json数据格式进行转换
- Semi-prime H-numbers UVA
- 数据增强 data augmentation
- Object源码分析
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 3.Spark Streaming:与Storm的对比分析
- 算法爱好者——k 数和 ? 待解决