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

关于莫比乌斯函数的应用

include

include

include

int main() {
constexpr int M = 20101009;
int n, m;
std::cin >> n >> m;
if (n > m) std::swap(n, m);
std::vector f(n + 1), vis(n + 1), prime;
prime.reserve(n);
f[1] = 1;
for (int x = 2; x <= n; ++x) {
if (!vis[x]) {
prime.emplace_back(x);
f[x] = 1 - x;
}
for (int p : prime) {
if (1LL * p * x > n) break;
vis[x * p] = 1;
f[x * p] = x % p ? (1 - p) * f[x] : f[x];
if (x % p == 0) break;
}
}
for (int x = 1; x <= n; ++x) {
f[x] = 1LL * x * f[x] % M + M;
f[x] = (f[x] + f[x - 1]) % M;
}
long long res = 0;
for (int l = 1, r; l <= n; l = r + 1) {
int nn = n / l, mm = m / l;
r = std::min(n / nn, m / mm);
int g_n = (1LL * nn * (nn + 1) / 2) % M;
int g_m = (1LL * mm * (mm + 1) / 2) % M;
res += 1LL * g_n * g_m % M * (f[r] - f[l - 1] + M) % M;
}
std::cout << (res % M) << '\n';
return 0;
}

http://www.gsyq.cn/news/26835.html

相关文章:

  • 记一次精简系统Windows11英文版离线安装中文语言包的过程
  • AI元人文:赋能公共治理、司法与监管的价值权衡新范式
  • Luogu P11159 【MX-X6-T5】 再生 题解 [ 蓝 ] [ 前缀和 ] [ 组合计数 ]
  • 王浩宇 102500416
  • 程序员修炼之路:从小工到专家 读书笔记 2
  • 程序员修炼之路:从小工到专家 读书笔记 3
  • 解答在同步以太坊事件数据时,如何保证后端服务在 API/RPC 不稳定情况下的可用性
  • 10.21日学习笔记
  • 24信计2班 17曾向嵩 pytorch读书报告
  • 关于第一次作业的时长统计
  • OI 笑传 #21
  • [Tool] lsof: 列出打开的文件描述符
  • Day1文本格式化标签
  • 解答这些 Solidity 开发中的重要问题
  • Day1排版标签,标题与段落
  • 解释这些 Solidity 智能合约的核心概念
  • 数据结构练习
  • 大二to大三暑假大三上前半学期总结
  • 带权拉格朗日中值定理的证明
  • 低代码如何推动企业敏捷创新与业务赋能
  • 删除链表的倒数第N个结点-leetcode
  • 2025.10.21总结
  • 软件工程学习日志2025.10.21
  • 10月21号
  • NOIP 二十六
  • Say 题选记 (10.19 - 10.25)
  • MySQL 创建和授权用户
  • 机器学习到深度学习发展历程
  • [CF 516 E] Drazil and His Happy Friends
  • home-assistant.-Adding integrations