一个结论:(从二维扩展来的,三维也是对的,证明可以考虑质因数分解)

\[d(ijk)=\sum_{i'|i}\sum_{j'|j}\sum_{k'|k}[\gcd(i',j')=1][\gcd(i', k')=1][\gcd(j', k')=1]
\]

\[\sum_{i=1}^a\sum_{j=1}^b\sum_{k=1}^c\sum_{i'|i}\sum_{j'|j}\sum_{k'|k}[\gcd(i',j')=1][\gcd(i', k')=1][\gcd(j', k')=1]
\]

\[\sum_{i'=1}^a\sum_{j'=1}^b\sum_{k'=1}^c[\gcd(i',j')=1][\gcd(i', k')=1][\gcd(j', k')=1]\lfloor\frac{a}{i'}\rfloor\lfloor\frac{b}{j'}\rfloor\lfloor\frac{c}{k'}\rfloor
\]

\[\sum_{i'=1}^a\sum_{j'=1}^b\lfloor\frac{a}{i'}\rfloor\lfloor\frac{b}{j'}\rfloor[\gcd(i',j')=1]\sum_{k'=1}^c[\gcd(i'j', k')=1]\lfloor\frac{c}{k'}\rfloor
\]

记:

\[f(x)=\sum_{k'=1}^c[\gcd(x, k')=1]\lfloor\frac{c}{k'}\rfloor
\]

\[f(x)=\sum_{k'=1}^c\sum_{d|x,d|k'}\mu(d)\lfloor\frac{c}{k'}\rfloor
\]

\[f(x)=\sum_{d|x}\mu(d)\sum_{d|k'}\lfloor\frac{c}{k'}\rfloor
\]

把先把\(g(x)=\sum_{x|k'}\lfloor\frac{c}{k'}\rfloor\)预处理出来。

然后可以预处理出来\(f(x)=\sum_{d|x}\mu(d)g(d),x\in[1,ab]\)

则答案为:

\[\sum_{i'=1}^a\sum_{j'=1}^b\lfloor\frac{a}{i'}\rfloor\lfloor\frac{b}{j'}\rfloor[\gcd(i',j')=1] f(i'j')
\]

#include <algorithm>
#include <cstdio>
using namespace std;
const int m = (1 << 30) - 1;
const int N = 4e6 + 5;
int p[N], mu[N], f[N], c;
bool tag[N];
void sieve(int n) {
mu[1] = 1;
for(int i = 2; i <= n; i ++) {
if(!tag[i]) { p[++ c] = i; mu[i] = -1; }
for(int j = 1; j <= c && i * p[j] <= n; j ++) {
tag[i * p[j]] = 1;
if(i % p[j] == 0) break ;
mu[i * p[j]] = - mu[i];
}
}
}
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if(a > b) swap(a, b);
if(a > c) swap(a, c);
if(b > c) swap(b, c);
int ans = 0; sieve(a * b);
for(int i = 1; i <= c; i ++) {
int g = 0;
for(int j = i; j <= c; j += i) {
g += c / j;
}
for(int j = i; j <= a * b; j += i) {
(f[j] += mu[i] * g) &= m;
}
}
for(int i = 1; i <= a; i ++) {
for(int j = 1; j <= b; j ++) {
if(__gcd(i, j) == 1) {
(ans += (1ll * (a / i) * (b / j) * f[i * j]) & m) &= m;
}
}
}
printf("%d\n", ans);
return 0;
}

「CF235E」Number Challenge「莫比乌斯反演」的更多相关文章

  1. ☆ [POI2007] ZAP-Queries 「莫比乌斯反演」

    题目类型:莫比乌斯反演 传送门:>Here< 题意:求有多少对正整数对\((a,b)\),满足\(0<a<A\),\(0<b<B\),\(gcd(a,b)=d\) ...

  2. BZOJ 1114 Number theory(莫比乌斯反演+预处理)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=71738 题意:给你一个整数序列a1, a2, a3, ... , ...

  3. LOJ2476. 「2018 集训队互测 Day 3」蒜头的奖杯 & LOJ2565. 「SDOI2018」旧试题(莫比乌斯反演)

    题目链接 LOJ2476:https://loj.ac/problem/2476 LOJ2565:https://loj.ac/problem/2565 题解 参考照搬了 wxh 的博客. 为了方便, ...

  4. 「BZOJ 3529」「SDOI 2014」数表「莫比乌斯反演」

    题意 有一张 \(n\times m\) 的数表,其第\(i\)行第\(j\)列的数值为能同时整除\(i\)和\(j\)的所有自然数之和. \(T\)组数据,询问对于给定的 \(n,m,a\) , 计 ...

  5. 「BZOJ 3994」「SDOI 2015」约数个数和「莫比乌斯反演」

    题意 设\(d(x)\)为\(x\)的约数个数,求\(\sum_{i=1}^{n}\sum_{j=1}^{m}d(ij)\). 题解 首先证个公式: \[d(ij) = \sum_{x|i}\sum_ ...

  6. 「洛谷P3768」简单的数学题 莫比乌斯反演+杜教筛

    题目链接 简单的数学题 题目描述 输入一个整数n和一个整数p,你需要求出 \[\sum_{i=1}^n\sum_{j=1}^n (i\cdot j\cdot gcd(i,j))\ mod\ p\]  ...

  7. [计蒜客] tsy's number 解题报告 (莫比乌斯反演+数论分块)

    interlinkage: https://nanti.jisuanke.com/t/38226 description: solution: 显然$\frac{\phi(j^2)}{\phi(j)} ...

  8. LOJ# 572. 「LibreOJ Round #11」Misaka Network 与求和(min25筛,杜教筛,莫比乌斯反演)

    题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质 ...

  9. loj#6076「2017 山东一轮集训 Day6」三元组 莫比乌斯反演 + 三元环计数

    题目大意: 给定\(a, b, c\),求\(\sum \limits_{i = 1}^a \sum \limits_{j = 1}^b \sum \limits_{k = 1}^c [(i, j) ...

随机推荐

  1. FPS 游戏实现D3D透视

    FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,绝地求生等,基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视 ...

  2. linux学习之路(一)--centos7安装JDK

    一.卸载centos自带jdk 1.rpm -qa | grep java 查看包含“java”关键字的安装包. 2.然后通过    rpm -e --nodeps   后面跟系统自带的jdk名    ...

  3. Presto个人常用操作

    时间戳转日期: from_unixtime(1569168000,'yyyy-MM-dd') = '2019-09-23' '20190903'转为'2019-09-23': unix_timesta ...

  4. 0-1背包问题——回溯法求解【Python】

    回溯法求解0-1背包问题: 问题:背包大小 w,物品个数 n,每个物品的重量与价值分别对应 w[i] 与 v[i],求放入背包中物品的总价值最大. 回溯法核心:能进则进,进不了则换,换不了则退.(按照 ...

  5. Lwip与底层的接口

    Lwip有三套api,分别是: raw api:使用方法为使用回调函数,即先注册一个函数,当接受到数据之后调用这个函数.缺点是对于数据连续处理不好. Lwip api:把接收与处理放在一个线程里面.因 ...

  6. Nginx 安装目录 和 编译参数

    安装目录详解 查看安装nginx之后总共生成了哪些文件 rpm -ql nginx 在上面的文件中包括配置文件和日志文件 /etc/logrotate.d/nginx 类型:配置文件 作用:Nginx ...

  7. python与mysql的数据交互

    一 Python 中操作 MySQL 步骤 1.1 安装pymysql命令 sudo pip3 install pymysql 安装软件:sudo apt-get install 软件名称 安装模块: ...

  8. OSI七层模型的新认识

    OSI 七层模型是internet的基石,它并没有制定一个标准,规定我们要怎么去做.美国军方曾把它精简到四层,只是站在了更实用的层次. 我们先来看看这个模型.   应用层->Applicatio ...

  9. 14 Windows编程——SetWindowLong

    使用默认窗口处理函数,源码 #include<Windows.h> #include<Windowsx.h> LRESULT CALLBACK WindProc(HWND hw ...

  10. [Jenkins][centos]1 持续集成 之 配置VNC,部署Jenkins

    痛点:上一篇的AWS部署的VNC不知为啥挂了,死活连不上,因此改申请京东云做部署Jenkins 预计阅读时间:20分钟 更新软件,安装桌面 yum -y update yum -y groupinst ...