对于d, 记{ai}中是d的倍数的数的个数为c, 那么有: 直接计算即可,复杂度O(NlogN+MlogM) --------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;   typedef long long ll;   co…
4305: 数列的GCD Description 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N).  现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], b[2], ..., b[N],满足:  (1)1<=b[i]<=M(1<=i<=N):  (2)gcd(b[1], b[2], ..., b[N])=d:  (3)恰好有K个位置i使得a[i]<>b[i](1<=i<=N)  注:gcd(x…
LINK:数列的GCD 题意: 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N). 现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], b[2], ..., b[N],满足: (1)1<=b[i]<=M(1<=i<=N): (2)gcd(b[1], b[2], ..., b[N])=d: (3)恰好有K个位置i使得\(a_i\neq b_i\)(1<=i<=N) 注:gcd(x1,x2,...,xn)为x1…
Bash and a Tough Math Puzzle CodeForces 914D 线段树+gcd数论 题意 给你一段数,然后小明去猜某一区间内的gcd,这里不一定是准确值,如果在这个区间内改变一个数的值(注意不是真的改变),使得这个区间的gcd是小明所猜的数也算小明猜对.另一种操作就是真的修改某一点的值. 解题思路 这里我们使用线段树,维护区间内的gcd,判断的时候需要判断这个区间的左右子区间的gcd是不是小明猜的数的倍数或者就是小明猜的数,如果是,那么小明猜对了.否则就需要进入这个区间…
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,…
[bzoj]P2705 OR [luogu]P2303 Longge的问题 Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). Input 一个整数,为N. Output 一个整数,为所求的答案. Sample Input 6 Sample Output 15 HINT [数据范围] 对于60%的数据,0<N<=2^16. 对于100%的数据,0<N<…
题目: 题解: http://hzwer.com/6142.html #include<cstdio> #include<algorithm> #define N 10000005 typedef long long ll; using namespace std; int T,n,m,cnt; bool mark[N]; int pri[N],mu[N]; ll f[N]; void getphi() { mu[]=; ;i<N;i++) { ; ;j<=cnt &a…
http://www.lydsy.com/JudgeOnline/problem.php?id=2820 此题非常神! 下文中均默认n<m 首先根据bzoj1101的推理,我们易得对于一个数d使得数对(x,y)=k的个数为: $$\sum_{1<=d<=n'} \mu (d) \times \lfloor \frac{n'}{d} \rfloor \times \lfloor \frac{m'}{d} \rfloor, 其中n'=\lfloor \frac{n}{k} \rfloor,…
欧拉函数/莫比乌斯函数 嗯……跟2190很像的一道题,在上道题的基础上我们很容易就想到先求出gcd(x,y)==1的组,然后再让x*=prime[i],y*=prime[i]这样它们的最大公约数就是prime[i]了…… 当然我们完全没必要这样做……对于每个prime[j],计算在(1,n/prime[j])范围内互质的数的对数,记为f[j],那么答案就等于sigma(f[j]) f[j]的求法还是和以前一样啦~(sigma φ(i))*2+1  (加一是因为类似 5,5 这样两个质数它俩的GC…
YY的GCD   Description 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻×必然不会了,于是向你来请教…… 多组输入 Input 第一行一个整数T 表述数据组数 接下来T行,每行两个正整数,表示N, M Output T行,每行一个整数表示第i组数据的结果 Sample Input 210 10100 100 Sample Output 302791 Hint T…