您的位置:首页 > 汽车 > 时评 > 合肥今日互联网科技有限公司_哈尔滨网站建设流程_百度关键词搜索排名帝搜软件_网站后端开发

合肥今日互联网科技有限公司_哈尔滨网站建设流程_百度关键词搜索排名帝搜软件_网站后端开发

2025/6/12 22:40:48 来源:https://blog.csdn.net/Pisasama/article/details/145795382  浏览:    关键词:合肥今日互联网科技有限公司_哈尔滨网站建设流程_百度关键词搜索排名帝搜软件_网站后端开发
合肥今日互联网科技有限公司_哈尔滨网站建设流程_百度关键词搜索排名帝搜软件_网站后端开发

ZJYYC2513. ABCD变量

题目

在这里插入图片描述

题目解析及思路

题目要求找到满足条件的四元组的数量

因为N最大2e5,所以可以遍历所有在1 ~ N-1的数,预处理它们的因数个数

代码

#include <bits/stdc++.h>
using namespace std;int main() {int n;cin >> n; // 输入正整数 N// 如果 N 小于 2,直接输出 0 并结束程序if (n < 2) {cout << 0 << endl;return 0;}// 定义一个数组 cnt,用于存储每个数的因数数目// cnt[k] 表示将 k 分解为两个正整数乘积的方式数(考虑顺序)vector<int> cnt(n, 0);// 使用筛法预计算每个数的因数数目for (int d = 1; d < n; d++) {// 遍历 d 的所有倍数 mfor (int m = d; m < n; m += d) {cnt[m]++; // 对于每个倍数 m,增加其因数数目}}int res = 0; // 用于存储最终的结果// 遍历所有可能的 AB 值(即 i)for (int i = 1; i < n; i++) {// 计算对应的 CD 值(即 n - i)// 将 AB 的分解方式数乘以 CD 的分解方式数,并累加到结果中res += cnt[i] * cnt[n - i];}// 输出最终的结果cout << res << endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com