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

幼儿园小班线段树

1.前言

没有前言。

2.例题

2.1 CF438D

有一个长度为 \(n\) 的数列 \(\{a_n\}\)\(m\) 次操作,操作内容如下:

  1. 格式为 1 l r,表示求 \(\sum \limits _{i=l}^{r} a_i\) 的值并输出。
  2. 格式为 2 l r x,表示对区间 \([l,r]\) 内每个数取模,模数为 \(x\)
  3. 格式为 3 k x,表示将 \(a_k\) 修改为 \(x\)

操作一与操作三显然好做。

操作二并不好做,如果下传标记,不好合并,所以我们可以暴力取模。若一个区间内的最大值小于模数,那么这个区间不用执行取模操作:\(x\ mod\ y = x\ \ (x < y)\)。若这个区间内的最大值大于等于模数时,我们才进行取模操作。

取模具有一个性质:\(x\ mod\ y < \frac{x}{2}\ \ (x \ge y)\)

证明:

\(x = k\cdot y + b\),其中 \(x,k,y,b\) 均为整数,\(b < y\)\(\lvert k \rvert \ge 1\)

\(x\ mod\ y = b\)

\(\because b < y\)\(\lvert k \rvert \ge 1\)
\(\therefore k\cdot y > b\)
\(\therefore b < \frac{x}{2}\)

得证。

根据这个性质,我们可以知道,每个数 \(x\),至多被取模 \(\log_{2}{x}\) 次。

修改一个数字即可视作添加一个数字 \(y\),我们至多需要多修改 \(\log_{2}{y}\) 次。

所以取模的总复杂度为 \(O((n + m)\log{V})\)

另外两个操作用脚做就行了。

2.2 LG5787

有一个 \(n\) 个节点的图。
有一些边 \(u\to v\) 会在时刻 \(l\) 出现,在时刻 \(r\) 消失。
求在每一时刻,该图是否为二分图。

http://www.njgz.com.cn/news/393.html

相关文章:

  • 树02
  • 深入ADC采样
  • 学习笔记:MySQL :eq_range_index_dive_limit参数
  • Python字符串知识点总结
  • SQL Server 2025年7月更新 - 修复 CVE-2025-49718 Microsoft SQL Server 信息泄露漏洞
  • 读书笔记:Oracle数据库内存结构:系统全局区(SGA)详解
  • 小飞标签
  • 服务器配置的精细化控制(3960)
  • TCP连接优化的实战经验(7340)
  • 家庭主妇人到中年的生活困境很难突破防
  • 中间件架构的优雅实现(0454)
  • 梦醒时分
  • Hyperlane框架最全教学(6165)
  • 并发处理能力的巅峰对决:异步编程的艺术(3501)
  • 实战项目:全栈在线群聊系统(7048)
  • HTTP响应处理的灵活设计(0782)
  • Rust异步Web框架性能突破之路(6359)
  • 服务器配置的精细化控制(7138)
  • 内存使用效率的终极对决:零拷贝技术的实战应用(0345)
  • 明源相关漏洞自查清单(2025)
  • TCP连接优化的实战经验(3513)
  • 异步编程在Web开发中的应用(3842)
  • Proxmox Backup Server 4.0 Beta - 开源企业级备份解决方案
  • Proxmox Mail Gateway 8.2 - 全面的开源邮件安全平台
  • 数控编程利器!Mastercam 2025 安装教程+汉化全流程解析
  • 阿里云AI安全护栏
  • 浅谈一类容量很大但重量很小的背包——2025.7.27 鲜花
  • Centos8搭建hadoop高可用集群
  • 连载小说《Server》 Part 1 《简幻欢》 序言
  • 折腾笔记[30]-使用bun_python通过javascript优雅调用python库