分析:看到最小值最大就很显然是二分了吧,二分一下最小值,把小于它的数给删掉,然后看每个数向左边能延伸多长,往右边能延伸多长,最后统计一下有没有可行答案就可以了.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;int n, a, b, k, x[3000010], r, l, ans, lx[3000010], rx[3000010];bool check(int u)
{memset(lx, 0, sizeof(lx));memset(rx, 0, sizeof(rx));for (int i = 1; i <= n; i++){if (x[i] >= u)lx[i] = lx[i - 1] + 1;elselx[i] = 0;}for (int i = n; i >= 1; i--){if (x[i] >= u)rx[i] = rx[i + 1] + 1;elserx[i] = 0;}for (int i = 1; i <= n; i++)if (lx[i - 1] >= a && rx[i + k] >= a && lx[i - 1] + rx[i + k] >= b)return true;return false;
}int main()
{scanf("%d%d%d%d", &n, &a, &b, &k);for (int i = 1; i <= n; i++){scanf("%d", &x[i]);r = max(r, x[i]);}l = 1;r++;while (l <= r){int mid = (l + r) >> 1;if (check(mid)){ans = mid;l = mid + 1;}elser = mid - 1;}printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/zbtrs/p/7631957.html

清北学堂模拟赛d6t2 刀塔相关推荐

  1. 清北学堂模拟赛d5t4 套路

    分析:题目非常短,看起来非常难,其实把图一画就明白了.有向图,每个点的出度都是1,那么整个图肯定是环上套链,链上的边无论怎样反向都不会形成环,环上的边也可以随便反向,但是最终不能反为同向的,总方案数减 ...

  2. 清北学堂模拟赛d3t2 b

    分析:一道比较让人头疼的数学题. 先考虑怎么让分出来的三角形相似,先不考虑每个三角形的具体边长,设每个三角形的周长为li,则可知必然有一个数g = gcd{li},每一个三角形的周长都是g的倍数,这样 ...

  3. 清北学堂模拟赛d6t3 反击数

    分析:显然是一道数位dp题,不过需要一些奇怪的姿势.常规的数位dp能统计出一个区间内满足条件的数的个数,可是我们要求第k个,怎么办呢?转化为经典的二分问题,我们二分当前数的大小,看它是第几大的,就可以 ...

  4. 清北学堂模拟赛d2t4 最大值(max)

    题目描述 LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目: 这里有一个长度为n的正整数数列ai(下标为1~n).并且有一个参数k. 你需要找两个正整数x,y,使得x+k< ...

  5. 清北学堂模拟赛d1t1 位运算1(bit)

    题目描述 LYK拥有一个十进制的数N.它赋予了N一个新的意义:将N每一位都拆开来后再加起来就是N所拥有的价值.例如数字123拥有6的价值,数字999拥有27的价值. 假设数字N的价值是K,LYK想找到 ...

  6. 清北学堂模拟赛day7 错排问题

    /* 考虑一下已经放回m本书的情况,已经有书的格子不要管他,考虑没有书的格子,不考虑错排有(n-m)!种,在逐步考虑有放回原来位置的情况,已经放出去和已经被占好的格子,不用考虑,剩下全都考虑,设t=x ...

  7. 清北学堂模拟赛d6t4 数组异或

    分析:直接O(n^3)做是只有50分的,可以加一点小小的优化,就是c[k]可以从c[k-1]得到,但是还是只有60分,从宏观意义上是不能继续优化了.对于这类涉及到位运算的性质的题目,将每个数转化成二进 ...

  8. 清北学堂模拟赛d3t6 c

    分析:比较神奇的一道题.要把树变成环肯定要先变成链,然后把链给拼接成环.接下来考虑一个脑洞大开的树形dp:设f[i][0]表示i不与父节点相连的链数,f[i][1]表示i与父节点相连的链数,先考虑怎么 ...

  9. 2020清北学堂秋季营感想——Hoarfrost

    2020清北学堂秋季营感想 前言:九月三十日放假以后,就马不停蹄地开始了这一次的奥赛培训.原先参加过暑假的提高组腾飞营,当时第一场模拟赛拿了第一,便觉得CSP的题目难度不会很高,普及+/提高-左右的难 ...

最新文章

  1. Oracle 删除数据后释放数据文件所占磁盘空间
  2. 脑电分析系列[MNE-Python-15]| Epochs数据可视化
  3. MySQL分区分表 原理详解
  4. 2021-08-30 centos连接WiFi方法
  5. 洛谷 - P1989 无向图三元环计数(思维建图)
  6. ISCSI 1-由零开始
  7. 批量画同心不同半径圆lisp_【微课视频】青岛版数学六年级上册5.1圆的认识
  8. 语句乎?表达式乎?(Python/C)
  9. php几个问题的记录
  10. 【转贴】二节棍精典棍花动作详解
  11. Python机器学习库——Sklearn
  12. python抖音涨粉代码_抖音最火表白代码
  13. javascript 实现下载的几种方法
  14. windows 搭建kms服务器激活_搭建kms服务器,自建KMS激活服务器的两种方法
  15. python 绘制三国演义人物关系图
  16. 软件工程第三章节结构化方法
  17. 太阳的后裔--OST.3 This love这份爱
  18. android手机密码忘了哪个电话打开,安卓手机锁屏密码忘了怎么办 解决锁屏密码六种方法介绍...
  19. 海伦司上市在即:“嚣张”气势堪比瑞幸,核心竞争力存不存在?
  20. 便签数据怎么恢复 有能恢复手机便签数据的方法吗

热门文章

  1. .net导出为powerpoint的一些参考代码
  2. 【JavaScript 笔记 】— 基础语法(数据类型、字符串、数组、对象、Map、Set、iterable、函数基础)
  3. java语言的命题原则_重庆自考《Java语言程序设计(一)》课程全国统一命题考试说明...
  4. mysql存储过程in_在MySQL存储过程中使用WHERE IN()
  5. 搭建10分钟,解决90%问题,帕累托分析模型为何这么强?
  6. AD19无法生成PCB_PCB制造拥抱AI
  7. 计算机组成原理 第四章 指令系统
  8. 蓝桥杯2013年省赛C/C++大学组 C/C++
  9. 实验4.2 实现客户机(CLIENT)类
  10. 《南溪的目标检测学习笔记》——权重初始化