允许5%的相对误差,意味着我们可以只输出$\log_{1.05} V$种取值并保证答案合法。并且注意到答案随着区间长度而单增,故取值不同的答案区间是$O(\log_{1.05} V)$的。

于是初始x=0,每次x=max(x+1,x*1.05),再用单调队列$O(n)$找出当前x能更新的区间即可。总复杂度$O(n\log_{1.05}V)$

 #include<cstdio>
#include<algorithm>
#define rep(i,l,r) for (int i=(l); i<=(r); i++)
using namespace std; const int N=;
int n,h1,h2,r1,r2,a[N],q1[N],q2[N],x,l=,r; int main(){
scanf("%d",&n);
rep(i,,n) scanf("%d",&a[i]);
for(; l<=n; x=max(x+,int(x*1.05))){
h1=h2=; r=r1=r2=; int now=;
rep(i,,n){
while(r1>=h1 && a[q1[r1]]<a[i]) r1--;
while(r2>=h2 && a[q2[r2]]>a[i]) r2--;
q2[++r2]=q1[++r1]=i;
for(; a[q1[h1]]-a[q2[h2]]>x; now++){
if(q1[h1]==now)h1++;
if(q2[h2]==now)h2++;
}
r=max(r,i-now+);
}
for(; l<=r; l++)printf("%d\n",x);
}
return ;
}

最新文章

  1. .NET 4.0 版本号
  2. css设置select高度(IE,FF,Chrome)[转]
  3. hadoop2.0初识1.2
  4. 使用spring + cxf +tomcat构建webservice
  5. uva 307
  6. UVa 1644 (筛素数 + 二分) Prime Gap
  7. 08_rlCoachKin自主编译,调试
  8. r.js实践
  9. Redis4- llist的操作
  10. Memcached源码分析之请求处理(状态机)
  11. C. Karen and Game
  12. Android - Daydream 互动屏保
  13. Js特殊字符转义之htmlEscape()方法
  14. 论文泛读&#183;Adversarial Learning for Neural Dialogue Generation
  15. Django部署方法
  16. 【Android】webview javascript 注入方法
  17. linux创建用户并设置密码
  18. python操作文件(增、删、改、查)
  19. laravel中db获取某个数据的具体字段值:
  20. Andrew机器学习第一课

热门文章

  1. 容斥原理&amp;&amp;莫比乌斯专题
  2. node.js、git、bootstrap等安装配置
  3. 20165329 Java实验二:面向对象编程
  4. Shiro认证的另一种方式
  5. React-Native 之 环境配置和简单使用
  6. pip install 升级时候 出现报asciii码错误的问题。
  7. window.onload绑定多个事件 —— 两种解决方案
  8. excl筛选求和
  9. 洛谷P3378堆
  10. java 判断字符串是否相等