题意:

给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的

数对(x,y)有多少对.

n<=1e7

题解:两种做法,第一直接推式子。得f[n] = Σd(d是质数)Σd2 (d2 *d <= n)mu(d2)(n/d*d2)^2

第二是枚举每个素数,然后每个素数p对于答案的贡献就是(1 ~ n / p) 中有序互质对的个数
而求1~m中有序互质对x,y的个数,可以令y >= x, 当y = x时,有且只有y = x = 1互质,当y > x时,确定y以后符合条件的个数x就是phiy
所以有序互质对的个数为(1 ~ n/p)的欧拉函数之和乘2减1(要求的是有序互质对,乘2以后减去(1, 1)多算的一次)
那么就只需要先筛出欧拉函数再求个前缀和就可以了(from hzwer)

关键:题目很简单但是思想很有用。我们可以枚举每个数贡献来解决莫比乌斯繁衍的问题

为什么第一种做法代码更快?。。。QAQ

第一种:

#include<bits/stdc++.h>
using namespace std;
#define maxn 10000020typedef long long ll;
bool tag[maxn];
int prime[maxn],cnt,n,mu[maxn];
ll ans;void init(){mu[1] = 1;for (register int i = 2 ; i <= n ; i++){if ( !tag[i] ) prime[++cnt] = i , mu[i] = -1;for (register int j = 1 ; j <= cnt && prime[j] * i <= n ; j++){tag[i * prime[j]] = 1;if ( (i % prime[j]) == 0 ){ mu[i * prime[j]] = 0; break; }mu[i * prime[j]] = mu[i] * (-1);}}     for (register int i = 1 ; i <= n ; i++) mu[i] += mu[i - 1];
}
ll getans(int n){register ll cur = 0;for (register int i = 1 ; i <= n ; ){int next = n / (n / i);cur += (ll)(mu[next] - mu[i - 1]) * (n / i) * (n / i);i = next + 1;}return cur;
}
int main(){scanf("%d",&n);init();for (int i = 1 ; i <= cnt ; i++) ans += getans(n / prime[i]);   cout<<ans<<endl;return 0;
}

第二种:

#include<bits/stdc++.h>
using namespace std;
#define maxn 10000020typedef long long ll;
bool tag[maxn];
int prime[maxn / 10],cnt,n;
ll phi[maxn];
ll ans;void init(){phi[1] = 1;for (register int i = 2 ; i <= n ; i++){if ( !tag[i] ) prime[++cnt] = i , phi[i] = i - 1;for (register int j = 1 ; j <= cnt && prime[j] * i <= n ; j++){tag[i * prime[j]] = 1;if ( (i % prime[j]) == 0 ){ phi[i * prime[j]] = phi[i] * prime[j]; break; }phi[i * prime[j]] = phi[i] * (prime[j] - 1);}}       for (register int i = 1 ; i <= n ; i++) phi[i] += phi[i - 1];
}int main(){scanf("%d",&n);init();for (register int i = 1 ; i <= cnt ; i++) ans += phi[n / prime[i]] * 2 - 1;cout<<ans<<endl;return 0;
}

bzoj2818: Gcd 莫比乌斯繁衍相关推荐

  1. BZOJ 2820 YY的GCD 莫比乌斯反演

    题意:链接 方法:莫比乌斯反演 解析: 这题跟上一篇博客有一点差别,当然我们能够考虑枚举素数这个大暴力.只是当你A掉这道题后发现正解?都将近5s时.就放弃了这个念头. 相同的式子我们能够直接搬过来.p ...

  2. BZOJ 2820 YY的GCD 莫比乌斯反演

    2820: YY的GCD Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y) ...

  3. 【bzoj2820】YY的GCD 莫比乌斯反演

    题目描述 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必然不会了,于是 ...

  4. HYSBZ - 2818 Gcd —— 莫比乌斯反演

    2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 8172  Solved: 3609 Description 给定整数N,求1&l ...

  5. bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛

    Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...

  6. 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛

    洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...

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

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

  8. YY的GCD 莫比乌斯反演

    ---题面--- 题解: $ans = \sum_{x = 1}^{n}\sum_{y = 1}^{m}\sum_{i = 1}^{k}[gcd(x, y) == p_{i}]$其中k为质数个数 $$ ...

  9. [洛谷P2257] YY的GCD (莫比乌斯反演)

    YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻× ...

最新文章

  1. WPF:如何为程序添加splashScreen(初始屏幕)
  2. Python学习笔记:Day15 部署Web App
  3. Chrome开发者工具Element style里的Computed标签页
  4. cat 几行_迷风花说Cat!Cat因为林教练是好教练回去现实却给了一巴掌
  5. Big Sur恢复Catalina ? macOS Big Sur降级的三种方法 !
  6. 关于VC9和VC6以及Thread Safe和Non Thread Safe版本选择的问题
  7. 判断回文(0315)SWUST-OJ
  8. [20180604]在内存修改数据(bbed).txt
  9. 钉钉企业内部H5微应用开发
  10. Javaweb实现简易的留言板项目
  11. WPS Office 2005的评议
  12. win10打开凭据管理器提示0x800706BA
  13. 下一代降维打击黑科技现身中国
  14. Java面向对象基础练习
  15. 【问题解决】Because witness class org.springframework.cache.interceptor.DefaultKeyGenerator is not existed
  16. spm使用之三spm应用实例
  17. Alpha多样性之箱线图解读
  18. 新手解决Connections could not be acquired from the underlying database!Java代码上传到服务器连接不上数据库
  19. H.264笔记(接上节)
  20. 【转】CultureInfo中重要的InvariantCulture

热门文章

  1. 给mongodb设置密码
  2. RIM任松伟 黑莓引领企业移动化主题演讲
  3. Java序列化与JNDI注入
  4. 一文直观理解编译型语言、解释型语言和脚本语言的区别
  5. 定期存款可以提前取出来吗_定期存款可以提前取吗?
  6. 痛,然后“快乐”,谢谢你,我的2016
  7. 电脑插座,电脑专用插座如何接线?电脑专用插座如何挑选?
  8. 从SDN鼻祖Nicira到VMware NSX 网络虚拟化平台的简单探讨
  9. English food
  10. JavaMail 之 搜索邮件