【POI2011】【BZOJ2216】Lightning Conductor
来源:互联网 发布:js防水涂料是柔性的吗 编辑:程序博客网 时间:2024/05/01 04:50
Description
已知一个长度为n的序列a1,a2,…,an。
对于每个1<=i<=n,找到最小的非负整数p满足 对于任意的j, aj < = ai + p - sqrt(abs(i-j))
Input
第一行n,(1<=n<=500000)
下面每行一个整数,其中第i行是ai。(0<=ai<=1000000000)
Output
n行,第i行表示对于i,得到的p
Sample Input
6
5
3
2
4
2
4
Sample Output
2
3
5
3
5
4
HINT
Source
随便化一下式子就发现显然是决策单调的..
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<queue>#define MAXN 500010#define GET (ch>='0'&&ch<='9')using namespace std;template <class classname>inline void in(classname &x){ char ch=getchar();x=0; while (!GET) ch=getchar(); while (GET) x=x*10+ch-'0',ch=getchar();}int n;int a[MAXN];double f[2][MAXN];struct node{ int l,r,x; node() {} node(int _l,int _r,int _x) { l=_l;r=_r;x=_x; }}q[MAXN];inline double calc(int j,int i) { return a[j]+sqrt(abs(j-i))-a[i]; }inline int find(node d,int x){ int l=d.l,r=d.r,mid=(l+r)>>1; for (;l<=r;mid=(l+r)>>1) if (calc(x,mid)<calc(d.x,mid)) l=mid+1; else r=mid-1; return l;}void solve(int id){ for (int i=1,h=1,t=0,j;i<=n;i++) { if (h<=t&&++q[h].l>q[h].r) h++;f[id][i]=calc(q[h].x,i); if (h>t||calc(i,n)>calc(q[t].x,n)) { while (h<=t&&calc(i,q[t].l)>calc(q[t].x,q[t].l)) t--; if (h<=t) j=find(q[t],i),q[t].r=j-1,q[++t]=node(j,n,i); else q[++t]=node(i,n,i); } }}int main(){ in(n); for (int i=1;i<=n;i++) in(a[i]); solve(0); for (int i=1;i<=(n>>1);i++) swap(a[i],a[n-i+1]); solve(1); for (int i=1;i<=n;i++) printf("%d\n",max(0,(int)ceil(max(f[0][i],f[1][n-i+1]))));}
1 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+决策单调性
- 刺迷,你真的是刺迷吗?
- 大端法还是小端法区别
- C++智能指针及其简单实现
- ScrollView无法填充满屏幕
- 注意!你的站点优化过度了没?
- 【POI2011】【BZOJ2216】Lightning Conductor
- jquery uploadify隐藏上传进度
- C++ typedef用法小结
- GDOI2016总结
- recycleview滑动到底部自动加载更多数据
- numeric_cast
- html第一天div页面布局
- 2dx-lua精灵添加触摸事件
- Javascript学习笔记(10)