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

20251018

正睿 CSP 7 连测

终于 ak 了一场。

D

给定长度为 \(n(n \le 2 \times 10^5)\) 的序列 \(a(|a_i| \le 10^9)\)。若 \(a_i < 0\)\(b_i = -2^{-a_i}\);否则,\(b_i = 2^{a_i}\)。求 \(b\) 的最大子段和对 \(998244353\) 取模的结果。

\(f_i\) 表示以 \(i\) 结尾的子段最大值,\(f_i = \max\{f_{i - 1} + b_i, 0\}\)\(ans = \max\limits_{i = 1}^n f_i\)

如果直接维护 \(f_i, ans\),需要维护 \(+, -, \max\)。有一个比较粗暴的主席树做法:\(+\) 为找到第一个不比 \(b_i\) 低的位置,然后进行区间修改,\(-\) 同理。而 \(\max\) 操作可以维护 \(hash\) 值做(比较时若右半部分相同则比较左半部分,否则比较右半部分)。但是巨难写,且时空的常数都巨大,幸好出题人没卡。(硬刚 \(2.5h\) 才过)。

而另一种更简单做法是维护 \(f_i, ans - f_i\)。这样就只有对 \(0\)\(\max\) 的操作,使用 ODT 维护连续 \(01\)段,\(+, -\) 运算暴力 lower_bound 的一下,然后暴力修改即可。

时间复杂度 \(O(n \log n)\)

早该想到 S 组模拟赛不会有主席树这种变态玩意的。这个题将 \(\max\) 操作简化后就十分好做了。

CF464E,这个题只能主席树,因为需要 dij。(黑)

http://www.rkmt.cn/news/23857.html

相关文章:

  • Linux后门应急
  • 2025.10.18总结
  • 第七章 常见攻击事件分析--钓鱼邮件
  • 10月18日日记
  • 第五章 linux实战-黑链
  • AI元人文:价值原语化——在创新与传承间搭建文明桥梁
  • 线段树历史值学习笔记
  • 周六训练-1018
  • (第五次)随机森林和xGboost
  • swtich的应用
  • P14253 旅行(trip)题解 - 符星珞
  • 因式分解
  • 20251018 杂题 总结
  • 【做题记录】P9753 [CSP-S 2023] 消消乐
  • 南京icpc-c题:
  • 学生信息管理系统(DAO模式重构)项目报告
  • 开源嵌入模型对比:让你的RAG检索又快又准
  • 智慧城市基础设施漏洞分析与国家安全影响
  • 实用指南:【读书笔记】《苏东坡》
  • 10.18 CSP-S模拟34/2025多校CSP模拟赛6 改题记录
  • 做题技巧与结论证明
  • 卡车厂实习第三天
  • 『普及』浅谈图的基础
  • ozon定制尺寸和重量
  • CF 359D. Pair of Numbers
  • 2025多校CSP模拟赛6
  • Java基础——类型转换,变量、常亮、作用域,基本运算符
  • 洛谷 LGR-246 S 模拟赛
  • godot3D节点本身的偏转数值错误竟会导致空间移动穿模??!