link

给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对.

1<=N<=10^7

(1)莫比乌斯反演法

发现就是YY的GCD,左转YY的GCD粘过来就行

代码太丑,没开O2 TLE5个点

#include <cstdio>
#include <functional>
using namespace std; const int fuck = 10000000;
int prime[10000010], tot;
bool vis[10000010];
int mu[10000010], sum[10000010]; int main()
{
mu[1] = 1;
for (int i = 2; i <= fuck; i++)
{
if (vis[i] == false) prime[++tot] = i, mu[i] = -1;
for (int j = 1; j <= tot && i * prime[j] <= fuck; j++)
{
vis[i * prime[j]] = true;
if (i % prime[j] == 0) break;
mu[i * prime[j]] = -mu[i];
}
}
for (int i = 1; i <= tot; i++)
for (int j = 1; j * prime[i] <= fuck; j++)
sum[j * prime[i]] += mu[j];
for (int i = 1; i <= fuck; i++)
sum[i] += sum[i - 1];
// int t; scanf("%d", &t);
// while (t --> 0)
// {
int n, m;
long long ans = 0; //别忘了初始化。。。
scanf("%d", &n), m = n;
if (n > m) {int t = m; m = n; n = t; }
for (int i = 1, j; i <= n; i = j + 1)
{
j = min(n / (n / i), m / (m / i));
ans += (sum[j] - sum[i - 1]) * (long long)(n / i) * (m / i);
}
printf("%lld\n", ans);
// }
return 0;
}

(2)欧拉函数法

对于一个\(p\)我们发现\(\sum_{i=1}^n\sum_{j=1}^n[\gcd(i,j)=p]\)即为\(\sum_{i=1}^{n/p}\sum_{j=1}^{n/p}[\gcd(i,j)=1]\)

左转SDOI仪仗队那题,发现这个式子就是\(2\varphi(\lfloor\frac n p\rfloor)+1\)

线性筛就行

(一个月前的代码

#include <bits/stdc++.h>
using namespace std; int vis[10000010];
long long phi[10000010];
int prime[1000010], tot, n; int main()
{
cin >> n;
phi[1] = 1;
for (int i = 2; i <= n; i++)
{
if (vis[i] == 0)
prime[++tot] = i, phi[i] = i - 1;
for (int j = 1; j <= tot && i * prime[j] <= n; j++)
{
vis[i * prime[j]] = true;
if (i % prime[j] == 0)
{
phi[i * prime[j]] = phi[i] * prime[j];
break;
}
phi[i * prime[j]] = phi[i] * (prime[j] - 1);
}
vis[i] ^= 1;
vis[i] += vis[i - 1];
phi[i] += phi[i - 1];
}
long long ans = 0;
for (int i = 1; i <= tot; i++)
ans += 2 * phi[n / prime[i]] - 1;
cout << ans << endl;
return 0;
}

luogu2658 GCD(莫比乌斯反演/欧拉函数)的更多相关文章

  1. $BZOJ$2818 $gcd$ 莫比乌斯反演/欧拉函数

    正解:莫比乌斯反演/欧拉函数 解题报告: 传送门$QwQ$ 一步非常显然的变形,原式=$\sum_{d=1,d\in prim}^{n}\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd ...

  2. [luogu P2586] GCD 解题报告 (莫比乌斯反演|欧拉函数)

    题目链接:https://www.luogu.org/problemnew/show/P2568#sub 题目大意: 计算​$\sum_{x=1}^n\sum_{y=1}^n [gcd(x,y)==p ...

  3. Bzoj 2818: Gcd 莫比乌斯,分块,欧拉函数,线性筛

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 3241  Solved: 1437[Submit][Status][Discuss ...

  4. 洛谷 - P1390 - 公约数的和 - 莫比乌斯反演 - 欧拉函数

    https://www.luogu.org/problemnew/show/P1390 求 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} gcd(i,j) $ ...

  5. BZOJ2005:[NOI2010]能量采集(莫比乌斯反演,欧拉函数)

    Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ...

  6. HDU 6390 GuGuFishtion(莫比乌斯反演 + 欧拉函数性质 + 积性函数)题解

    题意: 给定\(n,m,p\),求 \[\sum_{a=1}^n\sum_{b=1}^m\frac{\varphi(ab)}{\varphi(a)\varphi(b)}\mod p \] 思路: 由欧 ...

  7. BZOJ4804 欧拉心算(莫比乌斯反演+欧拉函数+线性筛)

    一通套路后得Σφ(d)μ(D/d)⌊n/D⌋2.显然整除分块,问题在于怎么快速计算φ和μ的狄利克雷卷积.积性函数的卷积还是积性函数,那么线性筛即可.因为μ(pc)=0 (c>=2),所以f(pc ...

  8. BZOJ.2705.[SDOI2012]Longge的问题(莫比乌斯反演 欧拉函数)

    题目链接 \(Description\) 求\[\sum_{i=1}^n\gcd(i,n)\] \(Solution\) \[ \begin{aligned} \sum_{i=1}^n\gcd(i,n ...

  9. GCD nyoj 1007 (欧拉函数+欧几里得)

    GCD  nyoj 1007 (欧拉函数+欧几里得) GCD 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 The greatest common divisor ...

随机推荐

  1. centos软件安装目录(amp目录)

    entos安装软件的目录 1. 如果是rpm安装的可以:rpm -ql package-name 2. 可以在根目录上直接find . -name 软件中的某个文件名 不过安装软件一般都在/usr/l ...

  2. mongodb与mongodb可视化工具adminMongo结合使用

    一,MongoDB的安置及配置 1,从MongoDB官网下载安装 https://www.mongodb.com/download-center#community 根据的电脑选择合适的版本安装: 根 ...

  3. Solaris11.1网络配置(Fixed Network)

    Solaris11的网络配置与Solaris10有很大不同,Solaris11通过network configuration profiles(NCP)来管理网络配置. Solaris11网络配置分为 ...

  4. Shell编程进阶 1.8 for循环

    产生序列的命令 seq 1 2 3 4 5 6 7 8 9 10 seq 1 3 5 7 9  (从1开始增加2显示这个数字,到10结束) seq - 10 8 6 4 2 seq - 10 9 8 ...

  5. MVC5网站部署到IIS7

    server 2008R2+IIS7.5下配置不会出现什么问题,这里记录下在server2008+IIS7下的配置 参考了一下:http://www.cnblogs.com/fcu3dx/p/3773 ...

  6. MyBatis总结七:动态sql和sql片段

    开发中,sql拼接很常见,所以说一下动态sql: 1 if 2 chose,when,otherwise 3 where,set 4 foreach 用法解析(现有一张users表 内有id user ...

  7. 企业级搜索引擎Solr 第三章 索引数据(Indexing Data)

    虽然本书中假设你要建索引的内容都是有着良好结构的,比如数据库表,XML文件,CSV,但在现实中我们要保存很混乱的数据,或是二进制文件,如PDF,Microsoft Office,甚至是图片和音乐文件. ...

  8. 发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >

    第一部分:FlowLayoutPanel控件 实现效果: 将FlowLayoutPanel做为导航菜单按钮的容器 以实现 某个菜单按钮不显示时 整体的导航菜单布局不至于"缺憾" 原 ...

  9. 《Effective Java》第6章 枚举和注解

    第30条:用enum代替int常量 将加班工资计算移到一个私有的嵌套枚举中,将这个策略枚举(strategy enum)的实例传到PayrollDay枚举的构造器中.之后PayrollDay枚举将加班 ...

  10. Git知识点汇总

    设置全局用户名 git config --global user.name "yourname" 设置全局邮箱 git config --global user.email &qu ...