莫比乌斯函数/反演

news/2025/10/24 12:59:35/文章来源:https://www.cnblogs.com/xihegudi/p/19162980

莫比乌斯函数/反演

莫比乌斯函数定义:\(\displaystyle {\mu(n) = \begin{cases} 1 &n = 1 \\ (-1)^k &n = \prod_{i = 1}^k p_i \text{ 且 } p_i \text{ 互质 } \\ 0 &else \end{cases}}\)

莫比乌斯函数性质:对于任意正整数 \(n\) 满足 \(\displaystyle {\sum_{d|n}\mu(d) = \begin{cases} 1 & n = 1 \\ 0 & n \neq 1\end{cases}}\)\(\displaystyle {\sum_{d|n} \frac{\mu(d)}{d} = \frac{\varphi(n)}{n}}\)

莫比乌斯反演定义:定义:\(F(n)\)\(f(n)\) 是定义在非负整数集合上的两个函数,并且满足 \(\displaystyle F(n) = \sum_{d|n}f(d)\) ,可得 \(\displaystyle f(n) = \sum_{d|n}\mu(d)F(\left \lfloor \frac{n}{d} \right \rfloor)\)

const int N = 5e4 + 10;
bool st[N];
int mu[N], prime[N], cnt, sum[N];
void getMu() {mu[1] = 1;for (int i = 2; i <= N - 10; i++) {if (!st[i]) {prime[++cnt] = i;mu[i] = -1;}for (int j = 1; j <= cnt && i * prime[j] <= N - 10; j++) {st[i * prime[j]] = true;if (i % prime[j] == 0) {mu[i * prime[j]] = 0;break;}mu[i * prime[j]] = -mu[i];}}for (int i = 1; i <= N - 10; i++) {sum[i] = sum[i - 1] + mu[i];}
}
void solve() {int n, m, k; cin >> n >> m >> k;n = n / k, m = m / k;if (n < m) swap(n, m);LL ans = 0;for (int i = 1, j = 0; i <= m; i = j + 1) {j = min(n / (n / i), m / (m / i));ans += (LL)(sum[j] - sum[i - 1]) * (n / i) * (m / i);}cout << ans << "\n";
}
int main() {getMu();int T; cin >> T;while (T--) solve();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/945188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同余方程组、拓展中国剩余定理 excrt

同余方程组、拓展中国剩余定理 excrt 公式:\(x \equiv b_i(\bmod\ a_i)\) ,即 \((x - b_i) \mid a_i\) 。 int n; LL ai[maxn], bi[maxn]; inline int mypow(int n, int k, int p) {int r = 1;for (; k; k >>=…

完整教程:微软2025教育AI报告:教育群体采用AI的比例显著提升

完整教程:微软2025教育AI报告:教育群体采用AI的比例显著提升pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…

康拓展开

康拓展开 正向展开普通解法 将一个字典序排列转换成序号。例如:12345->1,12354->2。 int f[20]; void jie_cheng(int n) { // 打出1-n的阶乘表f[0] = f[1] = 1; // 0的阶乘为1for (int i = 2; i <= n; i++)…

求解连续数字的正约数集合——倍数法

求解连续数字的正约数集合——倍数法 使用规律递推优化,时间复杂度为 \(\mathcal{O}(N\log N)\) ,如果不需要详细的输出集合,则直接将 vector 换为普通数组即可(时间更快) 。 #include <bits/stdc++.h> usi…

git回滚代码

回滚上一次提交是指撤销最近一次的git提交操作。在实际使用中,有两种常见的方法可以实现这个操作: 方法一:使用git revert命令回滚 1. 首先,通过命令`git log`查看提交记录,找到要回滚的提交的hash值。 2. 使用命…

Apache POI 在 Linux 无图形界面环境下因字体配置问题导致Excel导出失败的解决方案 - 详解

Apache POI 在 Linux 无图形界面环境下因字体配置问题导致Excel导出失败的解决方案 - 详解2025-10-24 12:52 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !importan…

扩展欧几里得 exgcd

扩展欧几里得 exgcd 求解形如 \(a\cdot x + b\cdot y = \gcd(a,b)\) 的不定方程的任意一组解。 int exgcd(int a, int b, int &x, int &y) {if (!b) {x = 1, y = 0;return a;}int d = exgcd(b, a % b, y, x);y…

离散对数 bsgs 与 exbsgs

离散对数 bsgs 与 exbsgs 以 \(\mathcal O(\sqrt {P})\) 的复杂度求解 \(a^x \equiv b(\bmod P)\) 。其中标准 \(\tt BSGS\) 算法不能计算 \(a\) 与 \(MOD\) 互质的情况,而 exbsgs 则可以。 namespace BSGS { LL a, …

防爆模乘

防爆模乘 借助浮点数实现 以 \(\mathcal O(1)\) 计算 \(a\cdot b\bmod p\) ,由于不取模,常数比 int128 法小很多。其中 \(1 \le n, k, p \le 10^{18}\) 。 int mul(int a, int b, int m) {int r = a * b - m * (int)…

欧拉筛(线性筛)

欧拉筛(线性筛) 时间复杂度为 \(\mathcal{O}(N\log\log N)\) 。 vector<int> prime; // 这里储存筛出来的全部质数 auto euler_Prime = [&](int n) -> void {vector<int> v(n + 1);for (int i = …

常见数列

常见数列 调和级数 满足调和级数 \(\mathcal O\left( \dfrac{N}{1} +\dfrac{N}{2}+\dfrac{N}{3}+\dots + \dfrac{N}{N} \right)\),可以用 $ \approx N\ln N$ 来拟合,但是会略小,误差量级在 \(10\%\) 左右。本地可以…

20232314 2025-2026-1 《网络与系统攻防技术》实验三实验报告

一.实验内容(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧。正确使用msf编码器,使用msfvenom生成如jar之类的其他文件 veil,加壳工具 使用C + shellcode编程 (2)通过组合应用各种技术…

【LTDC】LTDC 简介

前言 此篇文章仅作笔记分享,内容来源为:【正点原子】全是干货 | 手把手教你学STM32的LTDC这一节课目的就是了解一下 LTDC 的各种特点,方便后面学习。 LTDC 简介控制器框图信号线 注意不同芯片会有不同的引脚对应。 …

Markdown数学公式 - -一叶知秋

1.1 公式表达显示 代码行内公式 $数学公式$独立公式 $$数学公式$$1.2 上下标显示 代码$x^2$ $x^2$$x_2$ $x_2$1.3 括号显示 代码$\underbrace{yyyy}_{ \text{xxx} }$ $\underbrace{yyyy}_{ \text{xxxx} }$$\begin{case…

分类器案例 - -一叶知秋

模型复杂程度 一、常见衡量指标参数数量(Number of Parameters)模型包含的可学习参数越多,复杂度越高。 例如:线性回归:参数个数 = 特征维数 + 1 深度神经网络:每层权重矩阵大小 层数例子:ResNet-18(约1100万…

最大流

最大流 Dinic 解 使用 \(\tt Dinic\) 算法,理论最坏复杂度为 \(\mathcal O(N^2M)\) ,例题范围:\(N=1200,\ m=5\times 10^3\) 。一般步骤:\(\tt BFS\) 建立分层图,无回溯 \(\tt DFS\) 寻找所有可行的增广路径。封装…

最小割树 Gomory-Hu Tree

最小割树 Gomory-Hu Tree 无向连通图抽象出的一棵树,满足任意两点间的距离是他们的最小割。一共需要跑 \(n\) 轮最小割,总复杂度 \(\mathcal O(N^3M)\) ,预处理最小割树上任意两点的距离 \(\mathcal O(N^2)\) 。 过…

最小割

最小割 基础模型:构筑二分图,左半部 \(n\) 个点代表盈利项目,右半部 \(m\) 个点代表材料成本,收益为盈利之和减去成本之和,求最大收益。 建图:建立源点 \(S\) 向左半部连边,建立汇点 \(T\) 向右半部连边,如果某…

费用流

费用流 给定一个带费用的网络,规定 \((u,v)\) 间的费用为 \(f(u,v) \times w(u,v)\) ,求解该网络中总花费最小的最大流称之为最小费用最大流。总时间复杂度为 \(\mathcal O(NMf)\) ,其中 \(f\) 代表最大流。 struct…

图论常见结论及例题

图论常见结论及例题 常见结论要在有向图上求一个最大点集,使得任意两个点 \((i,j)\) 之间至少存在一条路径(可以是从 \(i\) 到 \(j\) ,也可以反过来,这两种有一个就行),即求解最长路;要求出连通图上的任意一棵生…