尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1824D 题解

CF1824D 题解
📅 发布时间:2026/6/18 19:30:32

求 \(\sum\limits _ {i = l} ^ r \sum\limits _ {j = x} ^ y g(i,j)\)。

离线询问,扫描线 \(j\),线段树维护 \(g(i)\),那么,转换为求解 \(x\) 时刻到 \(y\) 时刻,线段树区间 \([l,r]\) 的区间和的历史和。

考虑扫描线 \(j \leftarrow j + 1\) 时,会如何变化。

我们设一个辅助数组 \(s_i\) 表示一个位置是否是这个值的最后一次出现。那么 \(g(i)\) 相当于说 \(\ge i\) 中 \(s = 1\) 的最小下标。

而我们 \(j\) 移动时,\(s_{pre_j}\leftarrow 0, s_j \leftarrow 1\)。

然后,我们就要在 \(g\) 的这个线段树上对本身 \(pre_{a_j}\) 到上一个 \(1\) 的位置中这些值都变成 \(pre_{a_j}\) 的后一个 \(1\),并且把 \(j\) 的位置修改成 \(j\)。

其中 \(pre_i\) 表示满足 \(a_j = i\) 的最大的 \(j\)。

线段树要支持:区间推平,区间查询历史和。

维护一个向量 \(\begin {bmatrix} hsum, sum, len\end{bmatrix}\)。

修改矩阵:

\[\begin{bmatrix}1 & 0 & 0\\0 & 0 & 0\\0 & v & 1\\\end{bmatrix} \]

更新历史和矩阵:

\[\begin{bmatrix}1 & 0 & 0\\1 & 1 & 0\\0 & 0 & 1\end{bmatrix} \]

我们需要查询当前某个数前面/后面第一个 \(s=1\) 的位置,那么我们需要维护下标集合,用一个 std::set 即可。

相关新闻

  • CF1059 Codeforces Round 1059 (Div. 3) 游记
  • 10月17日记
  • aaaaaa

最新新闻

  • KES 数据库迁移实战:从 Oracle/MySQL 到 KingbaseES 的平滑过渡指南
  • LangGraph重试策略:如何构建高可靠的AI工作流自动恢复机制
  • 深入解析MPC850FADS子板:PowerPC嵌入式开发硬件设计与调试实战
  • MQX RTOS MFS嵌入式文件系统:原理、API实战与性能调优指南
  • Python+Appium移动端自动化测试:从环境搭建到框架优化的完整实战指南
  • AI向善不是加个loss函数:社会价值项目的全链路实操指南

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号