hdu 1695 莫比乌斯反演

hdu 1695 莫比乌斯反演

题意:

给出a,b,c,d,k, 求满足a <= x <= b && c <= y <= d && gcd(x,y)=k 的数对(x,y)的对数。

限制:

a=c=1; 0 < b,c <= 1e5; (n1,n2) 和 (n2,n1) 算为同种情况

思路:

其实是求满足1 <= x <= b/k && 1 <= y <= d/k && gcd(x,y)=1 的 数对(x,y)的对数。

莫比乌斯反演入门题

设f(k)为gcd(x,y)=k的数对(x,y)的对数,我们要求的是f(1)

设F(k)为gcd(x,y)为k的倍数的数对(x,y)的对数,可以想到F(k)=floor(b/k)*floor(d/k),

由莫比乌斯反演得:

令lim=min(b/k,d/k)

f(1)=mu[1]*F(1) + mu[2]*F[2] + ... + mu[lim]*F(lim)

因为(n1,n2)和(n2,n1)算为同一种情况,所以最后结果还要减掉重复的情况。

ps:这道题还可以用容斥做。

时间: 2024-08-06 11:34:40

hdu 1695 莫比乌斯反演的相关文章

HDU 1695 (莫比乌斯反演) GCD

题意: 从区间[1, b]和[1, d]中分别选一个x, y,使得gcd(x, y) = k, 求满足条件的xy的对数(不区分xy的顺序) 分析: 虽然之前写过一个莫比乌斯反演的总结,可遇到这道题还是不知道怎么应用. 这里有关于莫比乌斯反演的知识,而且最后的例题中就有这道题并给出了公式的推导. 1 #include <cstdio> 2 #include <algorithm> 3 typedef long long LL; 4 5 const int maxn = 1000000

HDU 1695 莫比乌斯思想基础题

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1695 莫比乌斯反演参考资料:http://www.cnblogs.com/chenyang920/p/4811995.html https://baike.baidu.com/item/%E8%8E%AB%E6%AF%94%E4%B9%8C%E6%96%AF%E5%8F%8D%E6%BC%94 我们现在就是求f(1),即x为1,所以就是所有的d都满足,即枚举所有的d~(1-b),注意减去重复的部分

HDU 4746 (莫比乌斯反演) Mophues

这道题看巨巨的题解看了好久,好久.. 本文转自hdu4746(莫比乌斯反演) 题意:给出n, m, p,求有多少对a, b满足gcd(a, b)的素因子个数<=p,(其中1<=a<=n, 1<=b<=m) 分析:设A(d):gcd(a, b)=d的有多少种      设B(j): gcd(a, b)是j的倍数的有多少种,易知B(j) = (n/j)*(m/j)      则由容斥原理得:(注:不同行的μ是不相同的,μ为莫比乌斯函数)      A(1) = μ(1)*B(1)

hdu 4746Mophues[莫比乌斯反演]

Mophues Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 327670/327670 K (Java/Others) Total Submission(s): 1669    Accepted Submission(s): 675 Problem Description As we know, any positive integer C ( C >= 2 ) can be written as the multiply of

HDU 5382 莫比乌斯反演

题目大意: 求S(n)的值 n<=1000000 这是官方题解给出的推导过程,orz,按这上面说的来写,就不难了 这里需要思考的就是G(n)这个如何利用积性函数的性质线性筛出来 作为一个质数,那么肯定G(i) = 2 1. 那么一个数 i 乘上了一个未出现的素数prime,那么就相当于,在当前符合的因子上面都乘了prime之后依旧符合,而原来 i 对应的数也符合,那么说明翻了两倍 也就是 g(i*prime) = 2*g(i) = g(prime) * g(i) 2. 如果这个乘上的素数prim

hdu1569 莫比乌斯反演

hdu 1695 莫比乌斯反演 给出a,b,c,d,k, 求满足a <= x <= b && c <= y <= d && gcd(x,y)=k 的数对(x,y)的对数. a=c=1; 0 < b,c <= 1e5; (n1,n2) 和 (n2,n1) 算为同种情况 其实是求满足1 <= x <= b/k && 1 <= y <= d/k && gcd(x,y)=1 的 数对(x,y

hdu 1695 容斥原理或莫比乌斯反演

GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5310    Accepted Submission(s): 1907 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)

HDU 1695 GCD (莫比乌斯反演)

传送门 GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9749    Accepted Submission(s): 3648 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)

HDU 1695 GCD 【莫比乌斯反演例题】

GCDTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4291 Accepted Submission(s): 1502   Problem DescriptionGiven 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = k.