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

CF2006C Eri and Expanded Sets

题解区怎么都要数据结构??这篇题解主要讲解本题的一个维护技巧。

假如我们知道了这个问题的结论,现在我们关心的是怎么求关于 \(\gcd\) 带来的贡献。

考虑从左往右扫描右端点,我们来试着维护每个左端点的信息。我们固定 \(r\),并设 \([l,r]\) 区间的 \(\gcd\)\(g(l)\),不难发现 \(g(l)|g(l+1)\),并且一个经典结论是一个 \(\gcd\) 的结果顶多只会被修改 \(\log\) 次。

于是 \(|a_r-a_{r-1}|\) 修改的 \(g(l)\) 是一段后缀,我们直接暴力修改即可,直到没有发生改变为止。修改时维护 \(l\) 是否为好的区间,当前以 \(r\) 为右端点的好的区间数量是容易维护的,代码很短,时间复杂度 \(\mathcal{O}(n\log^2V)\),常数巨小。

代码:

int n, a[N];
bool ok[N];
int val[N];
void solve () {n = rd ();rep (i, 1, n) a[i] = rd ();int cnt (0), ans (0);rep (i, 1, n) val[i] = ok[i] = 0;rep (i, 1, n) {++ ans;int j (i);while (j > 1) {int las = val[j];val[j] = __gcd (val[j], abs (a[i] - a[i - 1]));if (val[j] == (val[j] & -val[j])) {if (! ok[j]) ++ cnt, ok[j] = 1;} else if (ok[j]) -- cnt, ok[j] = 0;if (val[j] == las) break;-- j;}ans += cnt;}
printf ("%lld\n", ans);
}
http://www.gsyq.cn/news/137722.html

相关文章:

  • 革命性APA第7版参考文献生成器:3分钟智能化排版解决方案
  • 校园热水自由:蓝牙水控器开源方案完全指南
  • FreeMove工具深度解析:三步实现程序目录智能迁移
  • Switch系统配置实战手册:从入门到精通
  • 如何快速解决BlenderKit上传错误:专业调试指南
  • 如何3步完成空洞骑士模组安装:Scarab管理器完整指南
  • DoubleQoL模组完全指南:如何快速提升你的工业帝国管理效率
  • 273. 整数转换英文表示
  • AUTOSAR架构图中服务层配置操作指南
  • Audiveris终极指南:5步掌握免费乐谱数字化神器
  • 2026年,这些刷题APP助你技能飞升! - 品牌测评鉴赏家
  • BlenderKit深度解析:高效3D资源管理插件的架构设计与技术实现
  • 2026执医技能通关攻略!这3家实操培训帮你精准踩分 - 品牌测评鉴赏家
  • 终极解决方案:5分钟实现Figma界面全面中文本地化
  • 树上差分
  • Motrix下载加速指南:5步让你的下载速度显著提升
  • 执医考试培训机构怎么选?5大核心维度+高通过率机构测评 - 品牌测评鉴赏家
  • OBS VirtualCam 虚拟摄像头插件:一站式视频会议解决方案
  • 历年CSP-X复赛真题解析 | B4104 [CSP-X 2024 山东] 购物
  • Motrix下载管理器:7个实用技巧让你的下载速度翻倍
  • 终极指南:windows-defender-remover彻底解放Windows系统性能潜力
  • FGA智能助手深度解析:高效游戏自动化实战手册
  • Windows Defender深度控制完全指南:从诊断到完全掌控
  • Koalageddon:终极DLC解锁神器,轻松玩转全平台游戏内容
  • Windows Defender深度管理:从系统安全组件到性能优化实战
  • 群晖Docker部署XiaoMusic升级后界面异常修复指南
  • 医考人必备!5款高口碑医师资格证刷题APP测评,帮你精准踩中考点 - 品牌测评鉴赏家
  • HarmonyOS Web 混合通信选型指南:函数互调、数据通道,到底该怎么选?
  • PDF对比终极指南:用diff-pdf轻松识别文档差异
  • Java毕设项目:基于springboot的社区动物管理系统(源码+文档,讲解、调试运行,定制等)