当前位置: 首页 > news >正文

CF992E题解

考虑到如果 \(a_i=sum_{i-1}\) 那么前缀和就会在经过 \(i\) 之后翻倍,然后考虑把它转化成 \(a_i>=sum_{i-1}\) 这种形式也同样满足上述性质。

考虑从一个满足 \(a_i>=sum_{i-1}\) 的点 \(i\) 开始寻找,下一个满足 \(a_j>=sum_{j-1}\) 的点 \(j\) 必定满足两个条件。

  1. \[i<j \]

  2. \[a_j>=2*sum_{i-1} \]

从最小值开始跳,因为最多有 \(\log 1e9\)\(a_i>=sum_{i-1}\),所以最多跳 \(\log 1e9\) 次。

于是我们对值域维护一个动态开点线段树,线段树中一个权值 \(x\) 存的是权值为 \(x\) 的数的下标,对于一次查询,从最小值开始查询,设上一次寻找到的点的下标为 \(nxt\),然后每次查询值域大于 \(sum_{nxt-1}\) 的值的下标最小值 \(g\),需满足 \(nxt<g\),然后再判断 \(g\) 是否是答案即可。

怎么维护 \(sum\) 数组呢?维护一个树状数组。

如果一个权值对应有多个下标怎么办?在叶子节点上维护一个可删的小根堆即可。

http://www.sczhlp.com/news/7598/

相关文章:

  • OceanBase与Hadoop:国产数据库的崛起与大数据处理技术
  • AI内容检测新工具SynthID与水印技术解析
  • 嵌入式状态机软件实现方式
  • 第二十四篇
  • 【学习笔记】多项式
  • TYOI2025铁一集训随笔 day1
  • pygame小游戏飞机大战_3玩家移动+面对对象编程
  • 2025牛客多校第八场(持续更新)
  • 8月7号
  • nodejs中的exports与module.exports
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘keras’难题
  • 使用 Docker 部署 ClaudeCodeUI+Claude-Code-Router 中文教程
  • Casbin开源社区荣获2025上海开源创新菁英奖项目奖及个人奖!
  • 正则表达式可以做什么?
  • gxlib
  • SuperMicro 服务器管理
  • 你知道供应链管理的五大核心系统吗 - 智慧园区
  • FBI 成功瓦解 Hive 勒索软件网络的行动与技术内幕
  • 高性能椭圆曲线加密算法25519优化解析
  • 2025 暑假集训 Day4
  • 苹果iMessage群发协议,苹果iMessage短信,苹果iMessage推信,iMessage协议版自动群发完美实现。
  • 关于软件模拟IIC协议GPIO究竟使用开漏还是推挽输出
  • 戒烟器专利在亚马逊发起侵权投诉与APEX程序,点击查看不侵权抗辩点及申诉要点(美国发明专利US12114693B2) - 指南
  • JS历理 优化base.js脚本
  • 数字化转型利器:斑斑低代码、宜搭、简道云评测
  • SeaTunnel的搭建部署以及测试
  • 【MySQL】MySQL的安全风险与安装安全风险 - 指南
  • 2025 08 07
  • 招聘智能化核心:Moka人岗匹配引擎+AI面试评估解析
  • golang的Gin框架设置邮箱发送验证码