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

洛谷 P5398

洛谷 P5398

image

\(n, m,a_i \le 5 \times 10^5, 3s,128MB\)

标签 莫队,根号分治,(分块?)

想一想求区间逆序对都只能根号做,那这个题多半也是要根号卡过去(Ynoi 毒瘤)

考虑莫队,这里只讲从 \([l, r]\) 移动到 \([l, r + 1]\),其他 \(3\) 种都一样。

也就是要计算有多少 \(i \in [l, r]\)\(a_i\)\(a_{r + 1}\) 的因数以及多少个 \(i\)\(a_i\)\(a_{r + 1}\)的倍数。

因为 \(n, m\) 极大,只能使用二次离线处理这个问题。转化为对于前缀 \([1, x]\),以及查询 \([l, r]\),有多少对 \((i, j), i \in [1, x], j \in [l, r]\) 满足 \(a_i\)\(a_j\) 的倍数,多少对 \(a_j\)\(a_i\) 的倍数。

对于第一种,比较简单,从小到大枚举 \(x\),维护 \(cnt_u\) 表示是元素 \(u\) 倍数的位置数量,对于 \(a_x\) 的因子 \(p\),都 cnt[u]++ 即可,查询直接暴力扫一遍 \([l, r]\) 即可。

第二种就困难一些,不能想第一种一样维护,因为时间复杂度是 \(O(\frac{n}{a_x})\) 的。但是这个在 \(a_x\) 较大时是可行的。于是考虑根号分治

  • \(a_x \ge B\),按照前面的方式做即可。
  • \(a_x < B\),可以对于每种 \(val = a_x\) 做,设 \(pre_j\) 表示前 \(j\) 个数中为 \(val\) 倍数的数的个数。查询时贡献就是 \((pre_r - pre_{l - 1})\) 乘上 \([1, x]\)\(val\) 的出现次数,这样就不用暴力枚举 \(j\) 了。

\(n, m, a_i\) 同阶,时间复杂度:\(O(n \sqrt n)\)

想到莫队和根号分治就没有思维难度了。但是代码难度还是有(卡常)


因为此题及其卡常(我卡了几个小时),写的不好喜提 \(0pts\)。于是介绍一些卡常方式。

  • 比较常规的优化,如奇偶排序,快读等。

  • 枚举因数不要根号枚举,最初 \(O(V \log V)\) 预处理好。

  • 设莫队时块长设置为 \(500/1000\) 左右,根号分治的阈值设在 \(40 \sim 60\) 较好(或者使用动态求最有阈值的方式,不会)。

  • 不要用 vector 存储询问,用数组把所有询问存下来,按 \(x\) 排序,那么 \(x\) 对应的询问是一段区间。

  • 不要跟我一样蠢蠢的把莫队两个指针移动分开做(虽然比较清晰),合在一起做。

  • 听说还有循环展开的神人,但是前面 \(5\) 条应该够了。

http://www.jsqmd.com/news/362134/

相关文章:

  • 政府服务系统压力测试:保障公共事件响应能力的关键实践
  • fo-dicom需要安装C++才能运行
  • 2026年谷歌独立站多语种建站与谷歌推广代运营公司:深圳昊客网络推荐测评 - 深圳昊客网络
  • 2026压力传感器采购指南:现货供应 + 高精准品牌及靠谱代理商优选 - 品牌推荐大师1
  • 西门子 1200PLC 温室大棚控制仿真(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • vijos本地搭建教程和下载地址
  • 2026年知识库部署优选服务商推荐:从咨询规划到落地运维,全栈式知识库部署厂商一站式覆盖 - 品牌2025
  • AI大模型Skills完全指南:从入门到精通,一篇就够了!
  • 补偿电流控制的APF并联型有源电力滤波器仿真模型(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 虾仁
  • QT5.15.2安装
  • 中央空调程序(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 小程序毕设项目推荐-基于SpringBoot与微信小程序的博物馆文创系统实现基于springboot+小程序的在线文创产品订购平台小程序【附源码+文档,调试定制服务】
  • 2026年,银川工装装修公司推荐哪家?本地靠谱企业帮你避开装修坑 - 宁夏壹山网络
  • 《SkyWalking 分布式链路追踪实战》—— 敏捷定位微服务性能瓶颈!
  • vLLM 学习(二):vLLM 启动流程一
  • 一行css代码可能让你省下js代码
  • 2026年全国降本增效咨询公司哪家专业?5 家优质机构差异化解析 从落地到结束全维度参考 - 深度智识库
  • 定稿前必看!AI论文平台 千笔 VS Checkjie,专为本科生打造!
  • 小程序毕设项目推荐-基于springboot+小程序的自助麻将室小程序开发24小时自助棋牌室小程序的设计与实现【附源码+文档,调试定制服务】
  • 2026 年咸阳装修公司排名 TOP10:综合实力与口碑全榜单 - 博客万
  • 2026更新版!8个降AIGC软件测评:专科生降AI率必备工具推荐
  • 横评后发现!最强的一键生成论文工具 —— 千笔·专业学术智能体
  • 应用安全 --- 安卓加固 之 控制流分割
  • 小程序毕设项目推荐-基于微信小程序的大学生就业管理系统设计与实现基于springboot+小程序的线上校招云校招助手小程序的设计与实现【附源码+文档,调试定制服务】
  • 摆脱论文困扰! 降AIGC工具 千笔·降AI率助手 VS 文途AI,继续教育首选
  • 2026春节海外网红营销策略:不同市场该讲不同的“春节故事”
  • 第2章 Hello World - 详解
  • 小程序毕设选题推荐:基于springboot+小程序的线上校招云校招助手小程序的设计与实现基于微信小程序的校园招聘系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 零基础快速入门Linux指南:每天一个Linux命令_管道符号