题意:

给出序列,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. Partial Class部分类
  2. 使用PermissionsDispatcher轻松解决Android权限问题
  3. 华为配置(S3100)
  4. Caffe学习系列(22):caffe图形化操作工具digits运行实例
  5. linux 下的shell脚本
  6. 如何走出物联网死亡之井?
  7. statfs函数获取大容量磁盘信息速度慢的解决过程
  8. loadrunner- winsock 函数 一览表
  9. C++开源日志库选择
  10. 学习Python制作的智能小车
  11. Ubuntu 18.04 LTS版本 GoldenDict安装与配置
  12. 史上最全的正则表达式-匹配中英文、字母和数字
  13. C++第四章4.7综合实例----个人银行账户管理程序
  14. win10添加网络打印机_win10系统连接网络打印机
  15. 深度学习——序列模型(笔记)
  16. Zephyr Kernel 设备驱动和设备模型(一)
  17. declare 简单用法
  18. svm matlab 图像分割,勇哥的视觉实验:SVM分类器(二) 支持向量机的应用例子,图片分割...
  19. 我被炒了! 一位36岁程序员的的焦虑与困惑...
  20. 详解在Linux系统中安装JDK

热门文章

  1. Windows 10 SSH 下载地址
  2. hbuilder - wap to app
  3. 用iso镜像配置本地yum源
  4. 阿里云centos7使用yum安装mysql的正确姿势
  5. 防火墙迁移:提高安全弹性与可用性的5种方
  6. bzoj1232[Usaco2008Nov]安慰奶牛cheer*
  7. Ubuntu 下安装 输入法
  8. 很经典的独白,搞网络的童鞋们,你们懂得
  9. IT工作者平日要做好自我调节
  10. 企业ERP选型的两难困惑