Description

给出n个数,对于每个k(2<=k<=n),求出最大的一个ans,使得存在一个连续的长度为k的区间中最大值和最小值的差为ans。
答案与标准答案的误差不超过5%即为正确
n<=10^5,ai<=10^6

Solution

什么鬼?UER都出近似算法了?
这还真NOIP~~
好吧,其实这并不是什么高级的近似算法,什么不等式乱搞的东西。。。
你只需要对答案划分一下阶段。。。
对于每一个近似答案,我们找出这个近似答案最大所能对应的长度,然后我们就可以把每一段长度的答案都变为这个近似答案下的答案。。。
听起来有点绕,不是吗?
也就是我们的答案是由一段一段一样的答案组成。。。
然后我们可以发现,每一段我们取的近似值应该是1.05k1.05^k
别看它小,这也是个指数函数。。。
所以我们的复杂度就是NlogV
什么?你问我怎么找近似答案下的答案?
两个单调队列扫一扫或者rmq跑一跑就好喽。。。

Code

#include <cstdio>
#include <cstring>
#include <algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
typedef double db;
const int N=1e5+5,Mx=1e6;
int An[N],a[N],Min[N],Max[N],l,r,n;
int main() {scanf("%d",&n);fo(i,1,n) scanf("%d",&a[i]),An[i]=Mx;for(db ans=0;ans<=Mx;ans+=max(1.0,ans*0.05)) {int l1=1,l2=1,r1=0,r2=0;l=1;fo(r,1,n) {while (l1<=r1&&a[Min[r1]]>a[r]) r1--;while (l2<=r2&&a[Max[r2]]<a[r]) r2--;Min[++r1]=Max[++r2]=r;while (a[Max[l2]]-a[Min[l1]]>ans) {if (Min[l1]==l) l1++;if (Max[l2]==l) l2++;l++;}An[r-l+1]=min(An[r-l+1],a[Max[l2]]-a[Min[l1]]);}}fd(i,n-1,2) An[i]=min(An[i],An[i+1]);fo(i,2,n) printf("%d\n",An[i]);
}

[UOJ#245][UER#7B]天路相关推荐

  1. UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)

    题目链接 http://uoj.ac/contest/47/problem/455 题解 模拟费用流,一个非常神奇的东西. 本题即为WC2019 laofu的讲课中的Problem 8,经典的老鼠进洞 ...

  2. [UOJ#454][UER#8]打雪仗

    xx 转载于:https://www.cnblogs.com/lxzl/p/10324980.html

  3. 【UOJ】UER#3.B 开学前的日历

    将条件转化为i,j⩾0,i+j⩾k|Av+i,u+j+=(i+ji)i,j⩾0,i+j⩾k|Av+i,u+j+=(i+ji)i,j\geqslant 0,i+j\geqslant k|A_{v+i,u ...

  4. UOJ#454. 【UER #8】打雪仗

    UOJ#454. [UER #8]打雪仗 http://uoj.ac/problem/454 分析: 好玩的通信题~ 把序列分成三块,\(bob\)先发出这三块中询问点最多的一块给\(alice\). ...

  5. UOJ #142. 【UER #5】万圣节的南瓜灯 并查集

    #142. [UER #5]万圣节的南瓜灯 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/142 Descrip ...

  6. uoj#209【UER #6】票数统计

    题目 做UER的A题涨信心 首先我们注意到这个所谓的至少有一条正确在\(x\)和\(y\)不相等的时候非常弱,当\(x<y\)时,只有可能是后\(y\)位用户有\(x\)个通过:当\(x> ...

  7. UOJ #138. 【UER #3】开学前的涂鸦

    Description 红包是一个有艺术细胞的男孩子. 红包由于NOI惨挂心情不好,暑假作业又多,于是他开始在作业本上涂鸦. 一开始,他在纸上画了一棵 n 个节点的树.但是他觉得这样的画太简单了,体现 ...

  8. uoj 246. 【UER #7】套路

    #246. [UER #7]套路 反攻正在进行中,按照套路,跳蚤国将会很快获得最终的胜利.跳蚤国的情报局也没闲下来,他们正打算派遣一批"菲克蚤"前往跳晚国窃取有关三星 note7的 ...

  9. 【UOJ】#246. 【UER #7】套路

    传送门http://uoj.ac/problem/246 题解很详细 第二部分的单调队列需要好好思考 #include<stdio.h> #include<cstring> # ...

最新文章

  1. 基于自适应逆透视变换的车道线SLAM
  2. springboot webjar使用
  3. The Human Touch 将人工智能和机器人用于病人工作的实际和伦理意义
  4. 嵌入式成长轨迹11 【嵌入式环境及基础】【Linux shell深入】【深入讨论】
  5. armv8/armv9的简介-学习这一篇就够了
  6. python head 函数_python爬虫中header是什么?怎么用?
  7. bzoj3524 [Poi2014]Couriers
  8. Android应用开发—Intent组件详解
  9. SAP常用T-Code
  10. GDAL的一个BUG
  11. 寻找linux最新版本,在各大Linux发行版中安装和使用inxi以查找Linux系统详细信息...
  12. J2EE基础篇——十三个规范
  13. java日期多次使用修改,数据有问题
  14. 数据库索引失效的一些场景
  15. linux显示器复制模式,屏幕扩展模式、复制模式与合并模式
  16. beini奶瓶-无线网络蹭网破解-简明说明
  17. 云服务器系列2-frp-云服务器内网穿透windows远程控制实践
  18. ARM M3综合细节描述:
  19. @Transactional的readOnly、timeout
  20. 关于设备像素比dpr的理解

热门文章

  1. Windows优化大师 V7.74 Build 7.702 (2007-07-02)
  2. 集成电路设计与集成系统和计算机科学与技术,集成电路设计与集成系统本科专业介绍...
  3. <初识C++(1)>《C++初阶》
  4. 很简单的网络渗透过程
  5. 如何捕捉体育赛事精彩瞬间?慢动作回放系统解析
  6. 5G已来,“分”尽其用!跟考生聊一聊填报通信行业志愿的事儿~
  7. 从0到1用微信云开发实现的电竞赛事盒子小程序
  8. python的短路计算
  9. 4K高清视频素材,拿去不谢。
  10. 中基鸿业最实用的10个理财小知识