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

AT_abc292_c [ABC292C] Four Variables

这是一个经典的组合计数问题。我们可以通过将原方程 \(AB + CD = N\) 拆解为两个部分来降低复杂度。

解题思路

  1. 拆分方程

    \(X = AB\)\(Y = CD\)。由于 \(A, B, C, D\) 都是正整数(\(\ge 1\)),那么 \(X \ge 1\)\(Y \ge 1\)

    原方程变为 \(X + Y = N\)

  2. 枚举 \(X\)

    我们可以遍历 \(X\)\(1\)\(N-1\)。对于每一个确定的 \(X\),其对应的 \(Y\) 也就确定了,即 \(Y = N - X\)

  3. 计算约数个数

    对于一个确定的 \(X\),满足 \(AB = X\) 的正整数对 \((A, B)\) 的数量,实际上就是 \(X\)约数个数(记作 \(f(X)\))。

    同理,满足 \(CD = Y\) 的正整数对 \((C, D)\) 的数量就是 \(f(Y)\)

  4. 统计答案

    对于每一个 \(X\),满足条件的四元组数量为 \(f(X) \times f(N-X)\)

    总答案即为 \(\sum_{X=1}^{N-1} f(X) \times f(N-X)\)

  5. 预处理

    由于 \(N\) 最大为 \(2 \times 10^5\),我们可以使用类似素数筛法的 \(O(N \log N)\) 算法预处理出 \(1\)\(N\) 之间所有数的约数个数。


C++ 代码实现

#include <iostream>
#include <vector>using namespace std;int main() {// 优化输入输出效率ios::sync_with_stdio(false);cin.tie(0);int N;if (!(cin >> N)) return 0;// f[i] 表示正整数 i 的约数个数// 根据约束条件,N 最大为 200,000vector<long long> f(N + 1, 0);// 预处理 1 到 N 的所有约数个数// 时间复杂度为 O(N + N/2 + N/3 + ... + 1) = O(N log N)for (int i = 1; i <= N; ++i) {for (int j = i; j <= N; j += i) {f[j]++;}}long long ans = 0;// 枚举 X = AB,范围从 1 到 N-1// 那么 Y = CD = N - Xfor (int X = 1; X < N; ++X) {int Y = N - X;// AB = X 的组合数有 f[X] 种// CD = Y 的组合数有 f[Y] 种// 根据乘法原理,当前 X 下的组合总数为 f[X] * f[Y]ans += f[X] * f[Y];}// 输出最终结果cout << ans << endl;return 0;
}

复杂度分析

  • 时间复杂度\(O(N \log N)\)。预处理约数个数的过程类似于埃氏筛,耗时约为 \(N(1 + \frac{1}{2} + \frac{1}{3} + \dots + \frac{1}{N})\),即调和级数求和。最后的遍历过程为 \(O(N)\)
  • 空间复杂度\(O(N)\)。我们需要一个大小为 \(N\) 的数组来存储每个数的约数个数。

关键点提示

  • 数据类型:题目提示答案可能达到 \(9 \times 10^{18}\),因此存储答案的变量 ans 必须使用 long long 类型。
  • 约数计算:虽然可以使用 \(O(\sqrt{X})\) 的方法对每个数求约数,但在循环中重复计算会导致总复杂度达到 \(O(N \sqrt{N})\),对于 \(2 \times 10^5\) 的数据量可能会超时,因此预处理是更稳妥的选择。
http://www.jsqmd.com/news/432016/

相关文章:

  • 实测对比后 8个AI论文写作软件:专科生毕业论文+开题报告必备工具推荐
  • 每周读书与学习-Jmeter中如何使用Bean Shell脚本(一)Bean Shell的简介与安装
  • 伟伦家居:长春全屋定制头部品牌,先安装后付款,终身质保。
  • 微信立减金兑换码靠谱吗?教你选择正规回收平台,轻松变现! - 团团收购物卡回收
  • 冠珠新材驱动旧改升级,新明珠集团三大产业建筑美学焕新
  • 2026市面上最好的工业铝方管品牌推荐 - 品牌排行榜
  • 冠珠瓷砖荣获2025年度中国家居冠军榜“行业领军品牌”
  • 2026市面上比较好的徐州老房翻新装修公司推荐 - 品牌排行榜
  • 冰雪落幕之后,温度仍在——从“欢迎回家”行动看哈尔滨的城市品格
  • 真蟹黄造就“顶流”!三太子蟹皇干脆面连续两年全网销量第一
  • 赋能智能制造 吉林省万通技工学校 PLC 机器人培训培育高端技术人才 - 品牌之家
  • CF735C
  • 重庆学区房名额被用咋解决,概念及中介费收费标准你了解吗 - 工业品网
  • 计算机毕设java在线免费音乐畅听系统的设计与实现 基于Spring Boot的云端音乐流媒体播放平台开发 Java Web驱动的智能音频资源管理与共享系统构建
  • 律秒通AI高效企业法务系统好用吗,价格贵不贵? - 工业品牌热点
  • 2026年西南柴油发电机组安装团队价格排名,高效又靠谱的多少钱 - 工业品牌热点
  • 宁波高端红茶批发渠道解析:口碑厂家如何选,有机认证高端红茶/红茶/特色高端精品红茶,高端红茶公司哪家好 - 品牌推荐师
  • 分析重庆特辰建筑加固维修改造定制,费用怎么算,性价比高吗? - 工业推荐榜
  • 向量数据库 + 大数据平台:别再各玩各的了,这才是相似性搜索的“王炸组合”
  • 2026市场有实力的徐州全包装修公司排名一览 - 品牌排行榜
  • 海盾特种阀门有限公司口碑怎么样,全国用户评价如何? - myqiye
  • 前端新范式:用 AI 提效开发,用 E2E 保证迭代质量
  • 2026年3月片材生产线厂家推荐,精准控制性能深度解析 - 品牌鉴赏师
  • 南京黄金回收价格哪家优,黄金道资源回收性价比高吗? - mypinpai
  • 2026 喷播机湿喷机注浆机筛土机怎么选 五家优质服务商推荐 - 深度智识库
  • 2026最新专业手表维修保养/名表回收/高端腕表养护/名表维修保养/二手名表回收推荐:全链条服务,实力值得信赖 - 十大品牌榜
  • 2026国内比较好的徐州老房翻新装修公司推荐 - 品牌排行榜
  • Web 系统生命周期和分层故障排查思路
  • “AI+消费”:第四届北京人工智能产业创新发展大会----深度融合与场景重塑--全景洞察
  • 2026年 公职考试培训机构推荐榜单:公务员培训,事业编培训,教师培训,权威师资与高效课程深度解析 - 品牌企业推荐师(官方)