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

牛客练习赛148 D

D. 图G

不难,主要考察计数。

首先有个结论:\(\gcd(a, b)\)\(c\) 的倍数,当且仅当 \(a,b\) 均是 \(c\) 的倍数。

所以原条件可以改成:对 \(\forall 1 \leq i < j \leq n\)\(a_{i}\)\(a_{j}\) 均为 \(b_{i} \times b_{j}\) 倍数的 \((i, j)\) 计数。

固定每个端点,统计另一个端点的做法是很困难的,注意到 \(b_{i} \leq 1000\),而原序列中每一对 \((a_{i}, b_{i})\) 的顺序并不重要,于是我们可以考虑对不同取值的 \(b_{i}\) 计数。

注意到,若对于某个 \(i\)\(b_{i} \nmid a_{i}\),则原条件显然不成立。故我们可以直接舍弃掉这样的 \((a_{i}, b_{i})\)

对于 “\(a_{i}\)\(a_{j}\) 均为 \(b_{i} \times b_{j}\) 倍数” 这个条件,若均有 \(b_{i} \mid a_{i}\)\(b_{j} \mid a_{j}\) 存在,则可以进一步将条件改写为:\(c_{i} = a_{i} / b_{i}\)\(b_{j}\) 的倍数 且 \(c_{j} = a_{j} / b_{j}\)\(b_{i}\) 的倍数

预处理一个桶 \(cnt_{u,v}\)在原序列中,满足 \(b_{i} = u\),且 \(c_{i} = a_{i} / b_{i}\)\(v\) 的倍数,这样的 \((a_{i}, b_{i})\) 个数。其中 \(u, v \leq 1000\)。这个桶可以在 \(O(1000*n)\) 的复杂度中预处理出来,常数很小,可以做到。

考虑枚举 \(b_{i}, b_{j}\)。我们不实际枚举 \(i\)\(j\),而是直接枚举 \(b_{i}\)\(b_{j}\) 的值,复杂度 \(O(1000 * 1000)\)。设枚举的两个变量分别为 \(b_{i} = u\)\(b_{j} = v\)。根据变式的要求,对于 \(u\),我们应该找到 \(c_{i}\)\(v\) 的倍数的 \((a_{i}, u)\) 的数量,显然就是 \(cnt_{u, v}\);同理对于 \(v\),合法的 \((a_{j}, v)\) 的数量就是 \(cnt_{v, u}\)。所以此时的贡献就是 \(cnt_{u, v} * cnt_{v, u}\)。注意当 \(u = v\) 时,不能选同一位置上的 \(u, v\),此时贡献是 \(\frac{cnt_{u, u} * (cnt_{u, u} - 1)}{2}\)。枚举每对 \((u, v)\) 计数即可。

code

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

相关文章:

  • 虚拟主播动画制作从0到1:零基础掌握VTube Studio核心技能
  • AI编程工具使用限制解决方案:5个实用技巧
  • Live Avatar enable_vae_parallel功能解析:多GPU下VAE加速原理
  • Top5开源语音模型测评:Sambert多情感合成体验报告
  • 通俗解释lvgl中对象与事件处理机制
  • 电脑总锁屏?Mouse Jiggler让系统保持活跃的秘密武器
  • 硬件驱动兼容性问题解决指南:从诊断到优化的系统方法
  • 去耦电容在PLC系统中的作用:工业控制电源稳定性深度剖析
  • 音频预处理失败?Emotion2Vec+ Large采样率转换问题解决
  • mNetAssist网络调试从入门到精通:解决90%开发痛点的实战指南
  • 轻量级网络调试:从入门到精通
  • Z-Image-Turbo为何适合中文用户?深度解析
  • 24L01话筒通信丢包问题诊断:快速理解常见故障源
  • 音频超分辨率技术解密:如何通过深度学习解决音频质量优化难题
  • Qwen3-4B推理速度慢?算力瓶颈定位与优化教程
  • memtest_vulkan显卡显存稳定性检测与硬件诊断深度剖析
  • 卡牌创作大师:零基础打造专业级卡牌的终极指南
  • Synchronous Audio Router:3步实现Windows音频零延迟的创新解决方案
  • 3款开源PDF处理工具横向测评:哪款才是效率神器?
  • fft npainting lama分步教学:从启动到完成修复只需5步
  • 亲测FSMN-VAD镜像,长音频自动切分效果实录
  • 智能家居设备集成新方案:探索hass-xiaomi-miot的本地化控制与多协议适配之道
  • 轻量级PDF处理工具:让混乱的数字文档重获新生
  • glogg日志分析工具完全指南:从基础到高级应用
  • 如何解决网易云音乐ncm文件无法播放问题:ncmppGui工具全攻略
  • 3步定位显卡隐患:memtest_vulkan让显存故障无所遁形
  • 音频质量重生:AI如何突破分辨率极限?
  • 系统诊断与性能优化终极指南:使用memtest_vulkan进行GPU显存深度检测
  • Vitis使用教程图解说明:调试器设置与断点使用技巧
  • Speech Seaco Paraformer版本更新日志解读:v1.0.0新特性详解