bzoj2818: Gcd
2818: Gcd
Time Limit: 10 Sec Memory Limit: 256 MB
Description
给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的
数对(x,y)有多少对.
Input
一个整数N
Output
如题
Sample Input
Sample Output
HINT
hint
对于样例(2,2),(2,4),(3,3),(4,2)
1<=N<=10^7
题解:gcd(x, y) = p <==> gcd(x/p, y/p) = 1 <==> phi[y/p] if(x/p is smaller) p is a prime
我们就枚举p好了, x中有x/p个满足为p 的倍数,我们就需要Σ(i < x/p) phi[i] 的前缀和,然后答案*2 -1(*2是交换x和y, -1是因为phi[1]是x == y, 我们这里phi[1] = 1)
#include <bits/stdc++.h> #define ll long long using namespace std; const int M = 1e7 + 10; bool vis[M]; int cnt; int p, phi[M], prime[M]; ll sum[M]; void init(int t){phi[1] = 1;for(int i = 2; i <= t; i++){if(!vis[i]) phi[i] = i-1, prime[++cnt] = i;for(int j = 1; j <= cnt && i * prime[j] <= t; j++){int m = i * prime[j]; vis[m] = 1;if(i % prime[j] == 0) {phi[m] = phi[i] * prime[j];break;}phi[m] = phi[i] * (prime[j] - 1);}}for(int i = 1; i <= t; i++) sum[i] = sum[i-1] + phi[i]*1LL; }int main(){int t;ll ans = 0;scanf("%d", &t);init(t);for(int i = 1; i <= cnt; i++)ans += 2*sum[t/prime[i]] - 1;//, cout<<sum[t/prime[i]]<<endl;printf("%lld", ans); }
View Code
转载于:https://www.cnblogs.com/EdSheeran/p/9329517.html
bzoj2818: Gcd相关推荐
- BZOJ2818 Gcd
标签:数学,数论,欧拉函数,线性筛 Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. Input 一个整数N Output 如题 ...
- bzoj-2818 Gcd
2818: Gcd 题目链接 时间限制: 10 Sec 内存限制: 256 MB 提交: 7355 解决: 3268 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 ...
- bzoj2818: Gcd 莫比乌斯繁衍
题意: 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. n<=1e7 题解:两种做法,第一直接推式子.得f[n] = Σd(d是质数)Σd2 ( ...
- 莫比乌斯反演入门题目(详细)
目录 luoguP2568 GCD hdu1695 GCD luogu3455[POI2007]ZAP-Queries luogu2522 [HAOI2011]Problem b P4318 完全平方 ...
- 2019.4.summary
2019.4.1 BZOJ1061: [Noi2008]志愿者招募 真心有点难QAQ https://www.byvoid.com/zhs/blog/noi-2008-employee 看void爷的 ...
- GCD BZOJ2818 [省队互测] 数学
题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入样例#1: 复制 4 ...
- [BZOJ2818][P2568]Gcd[欧拉函数]
\(gcd(x,y)=p | p∈P\) \(gcd(x_1\times p,y_1\times p) = p\) \(gcd(x_1,y_1)=1\) 每个素数的贡献是对于\([1,\lfloor\ ...
- 【BZOJ2818】Gcd,数论练习之欧拉筛
传送门 写在前面:比较简单的数论题目了 思路:对i来说,所有与i互质的数和i都乘同一个质数p,那么得到的两个数的gcd一定是p,所以我们就可以利用这个来搞一搞了,对1-n的phi预处理出来(欧拉筛), ...
- 【bzoj2818】Gcd
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MB Submit: 4344 Solved: 1912 [Submit][Status][Discu ...
最新文章
- 字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法
- sklearn与pytorch模型的保存与读取
- ajax传递参数与controller接收参数映射关系
- tf.lookup.StaticHashTable 用法
- python调用c++_python高性能编程之Cython篇 第一章
- Java应用结构规范
- 6-C/C++实现数据结构链表相关操作
- 电销机器人源码支持私有云和本地部署
- 高数复习(1)--曲线切向与曲面法向的理解
- 【C代码】结构体数组初始化的相关总结
- k8s-v1.2.3部署mysql-8服务
- 文本数据挖掘一般步骤
- 杭电1048 The Hardest Problem Ever
- Hadoop培训视频教程
- 软考网络规划设计师知识点总结--第一章(计算机网络概论)
- 动手学习深度学习——Pytorch版教程系列汇总(长期更新版)
- 个人总结--关于学习过程中的一些经验心得分享
- 函数的参数作为引用时
- swapidc如何销售服务器,swapidc对接云服务器
- sqlmap 常用命令