当前位置: 首页 > 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.hskmm.com/?act=detail&tid=33938

相关文章:

  • [buuctf]bjdctf_2020_router
  • AtCoder Beginner Contest 428 ABCDE 题目解析
  • 稻草火把下的星辰:回忆我的90年代求学路
  • 10月18日日记
  • 第九章-实战篇-运维杰克
  • AntennaPod - 开源Android播客管理器
  • 硬件基础知识
  • 第三章 权限维持-linux权限维持-隐藏
  • 第五章 linux实战-黑链
  • AI元人文:价值原语化——在创新与传承间搭建文明桥梁
  • Channel小结
  • 线段树历史值学习笔记
  • 连续两行fastq、连续两行MD5值如何转换为每行一个fastq一个MD5格式
  • abc428
  • 深入解析密码库低级lowlevel抽象层接口与高级highlevel抽象层接口 - 实践
  • (第五次)随机森林和xGboost
  • 23-网关选型
  • Python 爬虫实战:手把手教你抓取网页数据
  • 华为hcip总纲
  • haiku
  • Asp.Net Core 解决使用 Docker调试时出现“准备容器时发生了一个非关键性错误。项目将继续正常工作。错误为: 路径中具有非法字符。”
  • ABC 随笔
  • 大数据分析基础及应用案例:第三周学习报告 ——Matplotlib 学习报告
  • 矩阵的秩和逆
  • 2025.10 训练日志
  • 全球AI推理扩展技术解析
  • 乱七八糟的知识点
  • swtich的应用
  • AtCoder Beginner Contest 428
  • 因式分解