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

洛谷 P10149

给定序列 \(a_1,\dots,a_n(n \le 5 \times 10^5, 3s)\)\(m\) 次询问,每次询问给出 \(l,r\) ,问有多少组 \((i,j,k)\) 满足 \(l\le i<j<k\le r,\;a_i=a_k>a_j\)

这个题看起来如果离线下来按 \(r\) 排序做不太能 \(\log\) 做,考虑一下根号做法:莫队!

既然考虑了莫队,先看看在末尾加一个元素 \(a_x\),贡献:

\[\begin{aligned} &= \sum\limits_{y} [a_x == a_y] \sum\limits_{i = y}^x [a_i < a_x] \\ &= \sum\limits_{y} [a_x == a_y] (\sum\limits_{i = 1}^x [a_i < a_x] -\sum\limits_{i = 1}^y [a_i < a_y]) \end{aligned} \]

用树状数组可以轻松算出 \(c_x = \sum\limits_{i = 1}^x [a_i < a_x]\)。贡献化简为 \(\sum\limits_{y} [a_x == a_y](c_x - c_y)\),即 \(c_x\sum\limits_{y} [a_x = = a_y] - \sum\limits_{y} [a_x == a_y] c_y\) 。转化为这个形式就有手就行了。删除一样的。

时间复杂度:\(O(m \sqrt m)\)

这题主要想到莫队就差不多了。

http://www.hskmm.com/?act=detail&tid=33264

相关文章:

  • 从0到1构建企业数据资产 - 智慧园区
  • 2025.10.17
  • 一行代码清空所有 docker 容器的日志文件
  • 塔吊施工 “隐形风险” 克星!思通数科 AI 卫士精准识别核心部件隐患
  • ubuntu配置vsftpd
  • 时序数据库 Apache IoTDB 等你“打卡”!2025 OSCAR 开源产业大会完整版议程揭晓
  • 2024 CCPC Final F
  • vue
  • Windows关闭端口占用
  • 洛谷 P12865
  • ubuntu清理内存缓存
  • ubuntu常用技巧
  • 10.17 CSP-S模拟33 改题记录
  • 包装类(基本数据类型对应的引用数据类型)
  • luogu P7915 [CSP-S 2021] 回文
  • USACO 绿-蓝 思维题小记
  • Day16-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\classlei
  • 一个实用的短视频脚本创作指令分享
  • 字典树 Trie 乱讲
  • redis和mysql之间的数据一致性
  • ubuntu允许root登录桌面系统
  • 24. 两两交换链表中的节点
  • AI协科学家:技术革命还是安全噩梦?
  • 一个决定
  • 10月17日
  • npm镜像配置
  • 一些特性
  • ubuntu安装mysql
  • 计算机视觉技术与应用深度解析
  • AGC 板刷记录1