尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
B. Crimson Triples(Codeforces 2238)
B. Crimson Triples - 题解题意简述给定n要统计有多少个有序三元组(a, b, c)满足1 a, b, c n并且gcd(lcm(a, b), lcm(b, c)) gcd(a, c)注意三元组是有序的(1, 2, 3)和(3, 2, 1)算不同。核心结论一个三元组(a, b, c)满足条件当且仅当b | a 且 b | c也就是b同时整除a和c。接下来解释为什么。从质因数指数理解任意正整数都可以拆成质因数。我们只看某一个质因子p。设p在a, b, c中出现的次数分别为x v_p(a) y v_p(b) z v_p(c)例如a 12 2^2 * 3^1 v_2(12) 2 v_3(12) 1对于质因数指数有两个基本规则v_p(gcd(u, v)) min(v_p(u), v_p(v)) v_p(lcm(u, v)) max(v_p(u), v_p(v))所以原式左边在质因子p上的指数是v_p(gcd(lcm(a, b), lcm(b, c))) min(max(x, y), max(y, z))右边在质因子p上的指数是v_p(gcd(a, c)) min(x, z)因此要求min(max(x, y), max(y, z)) min(x, z)化简这个条件观察左边max(x, y) y max(y, z) y所以min(max(x, y), max(y, z)) y如果y min(x, z)那么左边至少是y会严格大于右边条件不成立。如果y min(x, z)说明y x 且 y z于是max(x, y) x max(y, z) z左边变成min(x, z)正好等于右边。所以对于每一个质因子都必须且只需满足y x 且 y z翻译回整数就是b | a 且 b | c计数方法固定中间的数b。由于必须满足b | a b | c所以a和c都必须是b的倍数。在1..n中b的倍数有floor(n / b)个b, 2b, 3b, ..., floor(n / b) * ba可以任选一个倍数c也可以任选一个倍数所以固定b时贡献为floor(n / b) * floor(n / b)把所有b 1..n的贡献加起来answer sum_{b1}^{n} floor(n / b)^2图表示意以n 6为例固定的b1..6中b的倍数可选数量mfloor(n/b)贡献m^211, 2, 3, 4, 5, 663622, 4, 63933, 624441155116611总答案36 9 4 1 1 1 52也可以这样理解固定 b a 的选择b, 2b, 3b, ... c 的选择b, 2b, 3b, ... 每一个 a 都可以和每一个 c 配对所以是一个 m * m 的方阵。算法流程对每个测试用例读入n初始化ans 0枚举b从1到n令m n / b累加ans m * m输出ans。易错点三元组是有序的a和c不能合并计数。不是统计gcd(a, c)的值而是统计所有满足条件的(a, b, c)。答案可能很大必须使用long long。例如n 200000时光是b 1的贡献就是200000^2 40000000000。题目保证所有测试用例的n之和不超过2 * 10^5所以每个测试用例直接O(n)枚举是足够的。复杂度分析设所有测试用例的n之和为S。时间复杂度O(S) 空间复杂度O(1)其中题目保证S 2 * 10^5。C 代码实现#includebits/stdc.husingnamespacestd;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);intT;cinT;while(T--){longlongn;cinn;longlongans0;// 固定中间的 b。// 条件等价于 b | a 且 b | c。// 在 1..n 中b 的倍数有 floor(n / b) 个。for(longlongb1;bn;b){longlongmultiplesn/b;ansmultiples*multiples;}coutans\n;}return0;}
RELATED

相关推荐

为什么STARsolo是单细胞RNA测序分析的终极加速器?

为什么STARsolo是单细胞RNA测序分析的终极加速器?

为什么STARsolo是单细胞RNA测序分析的终极加速器? 【免费下载链接】STAR RNA-seq aligner 项目地址: https://gitcode.com/gh_mirrors/st/STAR 在当今单细胞生物学研究中,数据分析效率常常成为制约科研进展的关键瓶颈。当您面对成千上万个细胞的测…

📅 2026/10/14 16:04:29
Si5351A时钟发生器与PIC18F4680的精准时钟系统设计

Si5351A时钟发生器与PIC18F4680的精准时钟系统设计

1. 为什么电子系统需要稳定的频率参考在现代电子系统中,稳定的时钟信号就像人体的心跳一样重要。从简单的微控制器到复杂的通信设备,几乎所有的数字电路都需要一个精确的时钟源来同步各个部件的工作。我曾在多个汽车电子项目中深刻体会到,一个…

📅 2026/10/23 12:23:18
如何在5分钟内免费永久激活Windows和Office:KMS智能激活完整指南

如何在5分钟内免费永久激活Windows和Office:KMS智能激活完整指南

如何在5分钟内免费永久激活Windows和Office:KMS智能激活完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活弹窗烦恼吗?或者Office突然变成只…

📅 2026/10/26 10:35:34
MORE NEWS

更多资讯

📰

Docker容器GPU加速实战:CUDA驱动与框架版本对齐指南

1. 项目概述:Docker容器里跑GPU模型,不是“配个参数”就完事的你是不是也遇到过这种情况:本地训练一个PyTorch模型,单卡RTX 4090跑得飞快,但一打包进Docker镜像,nvidia-smi能看见显卡,torch.cud…

📰

10个提升Mac Dock效率的实用技巧

1. Mac程序坞的隐藏价值与常见误区作为一名使用Mac超过8年的资深用户,我见过太多朋友把Dock(程序坞)仅仅当作一个简单的应用启动栏。实际上,这个看似简单的界面元素蕴含着苹果工程师精心设计的诸多交互逻辑。很多人不知道的是&…

📰

Git删除指定commit的完整操作指南

1. Git分支中删除指定commit的完整指南作为版本控制系统的核心工具,Git在日常开发中扮演着重要角色。最近在团队协作时遇到一个典型场景:某次错误提交的commit已经推送到远程分支,需要在不影响其他提交的情况下将其从分支历史中彻底移除。经过…

📰

AI Agent开发中Skills的演进与实战应用

1. Skills的演进:从编程工具配角到Agent研发核心十年前我刚入行时,Skills还只是IDE里一个不起眼的插件功能。当时在Eclipse里安装Code Recommenders插件,它会根据上下文提示可能的API调用——这种初级代码补全就是Skills的雏形。如今在AI Age…

📰

Git删除特定commit的实用指南与最佳实践

1. 为什么需要删除分支中的特定commit?在团队协作开发中,Git分支管理是日常工作的核心部分。我遇到过无数次这样的情况:某个功能分支中混入了不该提交的敏感信息,或者不小心提交了错误的代码修改,又或者需要清理历史记…

📰

Agent-Reach:面向AI Agent的轻量级跨平台API通信中枢

1. 项目概述:Agent-Reach 是什么,它解决的是哪类真实问题? Agent-Reach 不是一个泛泛而谈的“智能体概念”,而是面向开发者、自动化工程师和内容运营者的一套 可落地、可嵌入、可调度的轻量级代理通信中枢 。它本质上是一套标准…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬