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

CF1584E Game with Stones 题解

Sol

考虑一个区间 \([l,r]\) 要如何才能合法。

显然 \(l\) 只能和 \(l+1\) 消耗,所以 \(a_{l+1}\ge a_l\)

然后接着让 \(l+1\)\(l+2\) 消耗,所以 \(a_{l+2}\ge a_{l+1}-a_l\)

以此类推 \(a_{i}\ge a_{i-1}-a_{i-2}+a_{i-3}-\dots\)。移项得到 \(a_{i}+a_{i-2}+\dots- (a_{i - 1}+a_{i-3}+a_{i-5}+\dots)\ge 0\)

注意到这个式子在 \(i \gets i+ 1\) 后,原来的数 \(s\) 会变成 \(a_i-s\)

那么我们只需要维护每个以 \(i\) 为后缀的所有区间,然后删除和 \(<0\) 的区间并加上 \([i,i]\),然后查询和为 \(0\) 的区间数量,可以用 map 实现。

注意 \(r-l+1\) 为偶数时,\(s_{l,r}=s_r-s_{l-1}\),否则 \(s_{l,r}=s_r+s_{l-1}\),其中 \(s_{i}\) 表示以 \(i\) 结尾且 \(i\) 符号为正的区间交替和。

Code

Link。

http://www.jsqmd.com/news/6371/

相关文章:

  • 高德解包和打包报错
  • 用友U8Api 接口对接
  • JUC:AQS
  • CF1980F2 Field Division (hard version) 题解
  • JUC:ThreadLocal
  • 广义串并联图とP6790 [SNOI2020] 生成树
  • Manim实现波浪形文字特效
  • cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行
  • 学python的第8天
  • 2025.9.30
  • Estun机器人数据断电保持问题解决方案
  • 天津港口海鲜之旅全攻略(2025最新版)
  • tomcat创建bat启动,结合任务计划实现自动重启tomcat服务 - 详解
  • 如何从安卓手机恢复手机照相机消失的相机照片?(6个高效办法)
  • Chromium V8类型混淆漏洞CVE-2025-10585安全分析
  • US$47.5 B48 MSV90 ISN Reading via OBD Authorization for Yanhua Mini ACDP
  • Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生
  • 香橙派5pro驱动开发(一)
  • Python 脚本遇到 SSL 证书问题
  • 构建用户-物品-场景的“关系宇宙 - 教程
  • sa-token开发时遇到的问题
  • HR如何摆脱入离职事务性内耗?组织管理系统助力聚焦人才价值挖掘
  • 里克尔梅张 重庆最好的古典前腰
  • 基于SpringAI构建大模型应用
  • C# TCP - 串口转发 - 实践
  • Java EE初阶启程记04---线程的状态 - 实践
  • US$44 YH Remote Key Tester Frequency/Infrared IR
  • 【星海出品】RabbitMQ 死信 - 教程
  • 【研发规范】Git 提交(commit)、CodeReview规范
  • Windows 11 局域网打印机共享设置