BZOJ4850: [Jsoi2016]灯塔
来源:互联网 发布:电脑初学者软件好 编辑:程序博客网 时间:2024/04/28 02:49
BZOJ4850
很容易发现
那么就可以考虑分块。(题目应该是
当
那么
一开始直接将
然后发现长度为
那么
对于每一块,用
复杂度
至于正解。。决策单调性整体二分什么的。。反正我不会
【代码】
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#define N 100005#define mod 1000000007#define INF 0x7fffffffusing namespace std;typedef long long ll;ll read(){ ll x=0,f=1;char ch=getchar(); while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();} while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();} return x*f;}int n,sum;int h[N],DP[N][30],Bit[N];void RMQ() { int temp=(int)(log((double)n)/log(2.0)); for(register int i=1;i<=n;i++) Bit[i]=(int)(log((double)i)/log(2.0)); for(register int i=1;i<=n;i++) DP[i][0]=h[i]; for(register int j=1;j<=temp;j++) for(register int i=1;i<=n;i++) if(i+(1<<j)<=n) DP[i][j]=max(DP[i][j-1],DP[i+(1<<(j-1))][j-1]); } int Query(int L,int R) { int k=Bit[R-L+1]; return max(DP[L][k],DP[R-(1<<k)+1][k]); } void Solve(int x){ int i=1,j=x-1,ans=0; while(1) { int len=i*i-(i-1)*(i-1); int jj=j-len+1;jj=max(jj,1); if(jj>j) break; int mx=Query(jj,j); ans=max(ans,mx-h[x]+i); if(jj==1) break;j=jj-1;i++; } i=1,j=x+1; while(1) { int len=i*i-(i-1)*(i-1); int jj=j+len-1;jj=min(jj,n); if(jj<j) break; int mx=Query(j,jj); ans=max(ans,mx-h[x]+i); if(jj==n) break;j=jj+1;i++; } printf("%d\n",ans);}int main(){ n=read(); for(register int i=1;i<=n;i++) h[i]=read(); RMQ(); for(register int i=1;i<=n;i++) Solve(i); return 0;}
阅读全文
0 0
- BZOJ4850: [Jsoi2016]灯塔
- 灯塔
- 灯塔数量
- 灯塔(LightHouse)
- 灯塔问题
- 灯塔数量
- 灯塔(LightHouse)
- 梦想 灯塔
- JSOI2016一轮Day1
- [JZOJ4468][JSOI2016?]轻重路径
- [JZOJ4465][JSOI2016?]飞机调度
- 【JSOI2016】飞机调度
- [JSOI2016]飞机调度
- [JSOI2016]无界单词
- [JSOI2016]轻重路径
- JSOI2016 Round2 游记
- JSOI2016 Round2 简要题解
- [JSOI2016]反质数序列
- jquery根据指定元素获取兄弟元素
- 03执行过程
- EventBus初体验
- QT5 Ping命令
- poj 1426
- BZOJ4850: [Jsoi2016]灯塔
- 28.使用onSaveInstanceState()保存活动被回收时的数据
- lintcode/leetcode由易至难第5题:Hamming Distance
- android 常用查看手机信息命名
- 8 种 NoSQL 数据库系统对比
- eclipse中安装swing 插件windowbuilder
- hibernateXML文件配置
- 嵌入式软件分层设计思想
- js高级-URL参数处理