题意:

给出序列,1≤i,j≤n,求gcd(a[i],a[j])∗(gcd(a[i],a[j])−1)之和。

题解 :

\(F(x)\)表示:有多少数对的gcd为x的倍数。
\(f(x)\)表示:有多少数对的gcd恰好为x。

\(F(x)\)很好求滴!
然后就可以施展容斥了。

举个例子: \(f(1) = F(1) - F(2) - F(3) + F(6)\)
٩̋(๑˃́ꇴ˂̀๑)۶: \(f(x) = \sum\limits_{x|y} F(y)μ(\frac{y}{k})\)

code

#include <iostream>
using namespace std;
#define MOD (10007)
const int MAXN = 1000000;
bool check[MAXN+10];
int prime[MAXN+10];
int mu[MAXN+10];
void Moblus() {memset(check, false, sizeof(check));mu[1] = 1; int tot = 0;for(int i = 2; i <= MAXN; i++) {if( !check[i] ) {prime[tot++] = i;mu[i] = -1;}for(int j = 0; j < tot; j++) {if(i * prime[j] > MAXN) break;check[i * prime[j]] = true;if( i % prime[j] == 0) {mu[i * prime[j]] = 0;break;} else {mu[i * prime[j]] = -mu[i];}}}
}
int T, n;
int a[10002], c[10002], f[10002];
int main() {Moblus();  while (~ scanf("%d", &n)) {int mx = -1;for (int i = 1; i <= 10000; i ++) c[i] = 0, f[i] = 0;for (int i = 1; i <= n; i ++) {scanf("%d", &a[i]); if (mx < a[i]) mx = a[i];for (int t = 1; t * t <= a[i]; t ++) {if (a[i] % t == 0) {c[t] ++; if (t * t != a[i]) c[a[i] / t] ++;}}}for (int i = 1; i <= mx; i ++) {for (int j = i; j <= mx; j += i) {(f[i] += (c[j]*c[j]*mu[j/i])) %= MOD;}}int ans = 0;for (int g = 1; g <= mx; g ++) {ans = ans + g*(g-1)%MOD*f[g]; ans = (ans % MOD + MOD) % MOD;}printf("%d\n", ans);}
}

转载于:https://www.cnblogs.com/RUSH-D-CAT/p/7654386.html

HDU5212 CODE【莫比乌斯函数】相关推荐

  1. 莫比乌斯函数+莫比乌斯反演

    几个经典的莫比乌斯反演练习题 先来一个莫比乌斯函数板子 1 int N = 10000000; 2 int not_prim[10000050],prim[10000050]; 3 long long ...

  2. 【bzoj3601】一个人的数论 莫比乌斯反演+莫比乌斯函数性质+高斯消元

    Description Sol 这题好难啊QAQ 反正不看题解我对自然数幂求和那里是一点思路都没有qwq 先推出一个可做一点的式子: \(f(n)=\sum_{k=1}^{n}[(n,k)=1]k^d ...

  3. Relatively Prime Powers CodeForces - 1036F (莫比乌斯函数容斥)

    Relatively Prime Powers CodeForces - 1036F Consider some positive integer xx. Its prime factorizatio ...

  4. 完全平方数 HYSBZ - 2440 (莫比乌斯函数容斥)

    完全平方数 HYSBZ - 2440 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他 ...

  5. 筛表合集(素数筛 欧拉函数筛 莫比乌斯函数筛)

    [目录] 一.素数筛 1.素数判断 2.素数普通筛 3.素数线性筛 4.素数区间筛 二.欧拉函数筛 三.莫比乌斯函数筛 [素数筛] 1.直接判定质数 bool judgePrime( int num ...

  6. 读贾志鹏线性筛有感 (莫比乌斯函数的应用)

    先拜大牛.感谢贾志鹏严谨的思维.以及简单清晰的论文描述. 一定要结合论文看.我只是提出我觉得关键的部分.论文在网上随处可见.贾志鹏线性筛. 开头两种线性筛的比较. 一种是传统的线性筛.时间复杂度为N* ...

  7. 杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...

    对于莫比乌斯函数 和 欧拉函数  小于 1e8差不多都可线筛    1e12以内  杜教筛 代码针对洛古  p4213  n<=(1<<31)-1  杜教筛 #include< ...

  8. [Luogu P2257] YY的GCD (莫比乌斯函数)

    题面 传送门:洛咕 Solution 推到自闭,我好菜啊 显然,这题让我们求: \(\large \sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)\in prime]\) 根 ...

  9. c莫比乌斯函数_莫比乌斯函数总结

    莫比乌斯函数总结 性质:\(\sum_{d|n}\mu(d)=[n==1]\) 这个可以用组合数的性质来证,形象点的话就是杨辉三角. 因为恒等式:\(\sum_{i=0}^{n}(-1)^nC_{n} ...

  10. 51nod 1240 莫比乌斯函数

    1240 莫比乌斯函数 1.0 秒 131,072.0 KB 0 分 基础题 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数 ...

最新文章

  1. poj 2777 Count Color
  2. Ajax监测开始执行及结束执行
  3. JAVA中循环删除集合中元素的方法总结
  4. 软件安装被分成了两个iso文件怎么安装
  5. python安装vpython_VPython:一个Python的3D图形动画库+被忽略的数据可视化功能
  6. spark学习:ContextCleaner清理器
  7. 计算机的外部设备 硬盘,外部设备采用SMB协议想共享电脑硬盘下的文件
  8. 左神小和问题逆序对问题面试
  9. Ui设计中的动画如何应用,你知道吗?
  10. JSP实现点击链接后下载文件(相当于右键另存)功能
  11. GIS软件——arcgis10.2制作符号并链接符号库
  12. Spring-01-HelloWorld
  13. c++编译STL文件反转其法线
  14. verilog 握手机制学习记录
  15. c语言竖线什么意思,竖线符号意思
  16. C# WebService 远程服务器返回错误:(500)内部服务器错误
  17. 华东、华北、华南的城市
  18. etcdctl-管理操作etcd集群
  19. 中国象棋棋盘java_Java中国象棋博弈程序探秘[2]——棋盘的表示
  20. 面经汇总--校招--金山办公

热门文章

  1. spring配置日志
  2. Android Day05-网络编程之文件下载之多线程断点续传技术
  3. redis和memcache的对比
  4. 链式编程和函数式编程
  5. IPsec ***基础:认识IPsec ***
  6. BJFU-ACM 12月8日月赛官方题解
  7. oracle查询题目2道
  8. Ubuntu 下安装 输入法
  9. 小记安装python的MySQLdb模块
  10. TNS 无监听解决方案