BZOJ 2818 Gcd(欧拉函数+质数筛选)】的更多相关文章

2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 9108  Solved: 4066 [Submit][Status][Discuss] Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的 数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 HINT hint 对于样例(2,2),(2,4),(3,3),(4,2)…
2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4436  Solved: 1957[Submit][Status][Discuss] Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 1<=N<=10^7 uva上做过gcd(x,y)=1的题 gcd(x,y)=p ---> gcd(x/p,y/p)=1 每个质数做一遍行了 答案是欧拉函数的前缀和*2…
Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 Hint 对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=10^7 这个题目可以用欧拉函数或者莫比乌斯反演. 第一种欧拉函数: 因为gcd(x, y) = p,所以gcd(x/p, y/p) = 1. 不妨设y较大,那么就是求所有比y/p小的数k,ph…
题目 传送门:QWQ 分析 仪仗队 呃,看到题后感觉很像上面的仪仗队. 仪仗队求的是$ gcd(a,b)=1 $ 本题求的是$ gcd(a,b)=m $ 其中m是质数 把 $ gcd(a,b)=1 $ 变形成 $ gcd(a,b)*m=m $ 然后在n的范围内枚举一下,使 $ gcd(a,b)*m <= n $ 再像仪仗队那样用欧拉函数搞一搞. 没了. 代码 #include <bits/stdc++.h> using namespace std; const int maxn=1e7+…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2818 题意:给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 其实就是一个转化问题,求gcd(x, y) = k, 1 <= x, y <= n的对数等于求gcd(x, y) = 1, 1 <= x, y <= n/k的对数.那么接下来我们就只要枚举每个素数k=prime[i]了,然后用到欧拉函数就可以求出来了,Σ( 2*Σ(…
GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5064    Accepted Submission(s): 1818 Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y)…
P2568 GCD 题目描述 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 输入输出格式 输入格式: 一个整数N 输出格式: 答案 输入输出样例 输入样例#1: 4 输出样例#1: 4 说明 对于样例\((2,2),(2,4),(3,3),(4,2)\) \(1<=N<=10^7\) 来源:bzoj2818 本题数据为洛谷自造数据,使用CYaRon耗时5分钟完成数据制作. Solution 方法1:莫比乌斯反演,方法和yy的gcd一样 方法2:…
根据欧几里德算法,gcd(a,b)=gcd(a+b*t,b) 如果a和b互质,则a+b*t和b也互质,即与a互质的数对a取模具有周期性. 所以只要求出小于n且与n互质的元素即可. #include<stdio.h> #include<string.h> ; int pr[N],cnt; int gcd(int a,int b){ if(!b) return a; return gcd(b,a%b); } int main(){ int n,k; while(~scanf("…
GCD Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the largest divisor common to a and b,For examp…
给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 如果两个数的x,y最大公约数是z,那么x/z,y/z一定是互质的 然后找到所有的素数,然后用欧拉函数求一下前缀和就行 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; ; const int INF=0x3f3f3…
GCD Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1567    Accepted Submission(s): 751 Problem Description The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes writte…
输入a b c d k求有多少对x y 使得x在a-b区间 y在c-d区间 gcd(x, y) = k 此外a和c一定是1 由于gcd(x, y) == k 将b和d都除以k 题目转化为1到b/k 和1到d/k 2个区间 如果第一个区间小于第二个区间 讲第二个区间分成2部分来做1-b/k 和 b/k+1-d/k 第一部分对于每一个数i 和他互质的数就是这个数的欧拉函数值 全部数的欧拉函数的和就是答案 第二部分能够用全部数减去不互质的数 对于一个数i 分解因子和他不互质的数包括他的若干个因子 这个…
GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4141    Accepted Submission(s): 1441 Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y)…
GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9046    Accepted Submission(s): 3351 Problem Description Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y…
P4388 付公主的矩形 前置芝士 \(gcd\)与欧拉函数 要求对其应用于性质比较熟,否则建议左转百度 思路 有\(n×m\)的矩阵,题目要求对角线经过的格子有\(N\)个, 设函数\(f(x,y)\)为矩阵\((x,y)\)对角线经过的格子 设\(gcd(n,m)=1\),对角线在矩形中不会经过任意一个格点,\(f(n,m)=n+m-1\) 那\(gcd(n,m)!=1\)呢?将这个矩阵拆除\(gcd(n,m)\)个相同的矩阵 其中\(gcd(n',m')=1\),则\(\dfrac{n}{…
求gcd(x,y)=p等价于求gcd(x/p,y/p)=1,转化为了n/p内互质的个数 所以欧拉函数,因为有序所以乘2,再特判一下只有在1,1情况下才会重复计算,所以每次都减一 数组开小一时爽,提交wa火葬场!!! #include<iostream> #include<cstdio> #include<cstring> using namespace std; ; int n; int ck[maxn],prime[maxn],phi[maxn],tot; long…
找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10097    Accepted Submission(s): 5328 Problem Description 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公…
http://acm.hdu.edu.cn/showproblem.php?pid=5780 BC #85 1005 思路: 首先原式化简:x​^gcd(a,b)​​−1 也就是求n内,(公约数是i的对数)*x^i-1的和,其中i为n内的两两最大公约数.那么问题可以转化成先预处理出i,再求和,注意O(n*300)=1,正常情况会卡常数.必须还要优化 由于 ans=∑s[d]∗(x^​d​​−1),记s[d]=最大公约数为d的对数 我们注意到求s[d] or (公约数是i的对数),也就是求n/i以…
题目链接: http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370 题意: 给定值,求满足欧拉值大于等于这个数的最小的数. 分析: 两个质数之间的合数的欧拉值小于较小的质数,所以满足比给定的值大的欧拉值肯定是大于这个数的第一个质数. 二分查找一下就好了. 代码: #include <iostream> #include<cstdio> #include<algorithm> #i…
2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1633  Solved: 724[Submit][Status] Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 HINT hint 对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=…
Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 HINT hint 对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=10^7 Solution 看着黄学长的题解才弄懂这道题的QAQ,我数论真的好差啊... 求$gcd(x,y)=p$,p为素数的x,y取值有多少种 每个素数p对答案的贡献是$1$~$n…
题目 给定两个区间[1, b], [1, d],统计数对的个数(x, y)满足: \(x \in [1, b]\), \(y \in [1, d]\) ; \(gcd(x, y) = k\) HDU1695 题解 我们观察式子\(gcd(x,y)=k\) 很显然,\(gcd(x/k, y/k) = 1\) 我们令b < d,令x<y(避免重复计数) 分类讨论. 1) y < b 可以看出答案就是\(\sum_{i \in [1, b]} \phi(i)\) 2)\(y \in [b, d…
https://www.luogu.org/problemnew/show/P2568 统计n以内gcd为质数的数的个数. 求 \(\sum\limits_p \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} [gcd(i,j)==p]\) 一开始还以为要莫比乌斯反演. 推了半天不知道怎么求,遂看题解: $\sum\limits_p \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} [gcd(i,j)==p] =\sum\l…
http://acm.hdu.edu.cn/showproblem.php?pid=1695 要求[L1, R1]和[L2, R2]中GCD是K的个数.那么只需要求[L1, R1 / K]  和 [L2, R2 / K]中GCD是1的对数. 由于(1, 2)和(2, 1)是同一对. 那么我们枚举大区间,限制数字一定是小于等于枚举的那个数字就行. 比如[1, 3]和[1, 5] 我们枚举大区间,[1, 5],在[1, 3]中找互质的时候,由于又需要要小于枚举数字,那么直接上phi 对于其他的,比如…
首先因为N很大,我们几乎不能筛任何东西 那么考虑设s(p)为 gcd(i,n)=p 的个数,显然p|n的时候才有意义 因为i与n的gcd肯定是n的因数,所以那么可得ans=Σ(p*s(p)) 那么对于s(p),我们有gcd(i,n)=p即gcd(i/p,n/p)=1,也即phi(n/p) 所以枚举因数求phi就好了 /**************************************************************     Problem:     User: BLAD…
题意:求从左下角能看到的元素个数 引理:对点(x,y),连线(0,0)-(x,y),元素个数为gcd(x,y)-1(中间元素) 即要求gcd(x,y)=1 求gcd(x,y)=1的个数 转化为2 \sum_(i=1)^(n-1) \phi(i) - 1 (思考如何转化) 感性分析,理性计算 #include <bits/stdc++.h> using namespace std; ]; int main(){ cin>>n; phi[]=; ;i<=n;i++) phi[i]…
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695 题意:在[a,b]中的x,在[c,d]中的y,求x与y的最大公约数为k的组合有多少.(a=1, a <= b <= 100000, c=1, c <= d <= 100000, 0 <= k <= 100000) 思路:由于x与y的最大公约数为k,所以xx=x/k与yy=y/k一定互质.要从a/k和b/k之中选择互质的数,枚举1~b/k,当选择的yy小于等于a/k时,能够…
2226: [Spoj 5971] LCMSum Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 1123  Solved: 492[Submit][Status][Discuss] Description Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n,n), where LCM(i,n) denotes the Least Common Multiple of the in…
/* 题意:(n)表示小于n与n互质的数有多少个,给你两个数a,b让你计算a+(a+1)+(a+2)+......+b; 初步思路:暴力搞一下,打表 #放弃:打了十几分钟没打完 #改进:欧拉函数:具体证明看po主的博客 ^0^ #超时:这里直接用欧拉函数暴力搞还是不可以的,用到线性筛欧拉函数,这里总和爆int,要用long long */ #include<bits/stdc++.h> #define ll long long using namespace std; /***********…
bzoj[2818]Gcd Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. Input 一个整数N Output 如题 Sample Input 4 Sample Output 4 HINT hint对于样例(2,2),(2,4),(3,3),(4,2) 1<=N<=10^7 题解一(自己yy) phi[i]表示与x互质的数的个数 即gcd(x,y)=1 1<=y<x ∴对于x,y 若a为素数 则gcd(xa,…