bzoj 1101 zap】的更多相关文章

1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MB Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. Input 第一行包含一个正整数n,表示一共有n组询问.(1<=n<= 50000)接下来n行,每行表示一个询问,每行三个正整数,分别为a,b,d.(…
http://www.lydsy.com/JudgeOnline/problem.php?id=1101 给定a,b,d,求有多少gcd(x,y)==d(1<=x<=a&&1<=y<=b) 思路: Σgcd(x,y)==d  (1<=x<=a,1<=y<=b) = Σgcd(x,y)==1 (1<=x<=a/d,1<=y<=b/d) 令G(i)=num(i|gcd(x,y))=n/i*m/i g(i)=num(i=gc…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 直接莫比乌斯反演. 代码如下: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; int pri[xn],cnt,mu[xn]; bool vis[xn]; int rd() { ,f=; char ch=ge…
gcd(x,y)=d-->gcd(x/d,y/d)=1. 即求Σ(i<=n/d)Σ(j<=m/d) e(gcd(i,j)) 因为e=miu×1,可以卷积. 因为多组询问,需要sqrt(n)计算. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define int long long using namespace std; int n,m…
1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2262  Solved: 895[Submit][Status][Discuss] Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. Input 第一行包含一个正整数n,表示一共有n组询问.(1&…
求 answer = ∑ [gcd(x, y) = d] (1 <= x <= a, 1 <= y <= b) . 令a' = a / d, b' = b / d, 化简一下得到: answer = Σ μ(t)*⌊a'/t⌋*⌊b'/t⌋ ⌊a'/t⌋相等的是一段连续的区间, ⌊b'/t⌋同理, 而且数量是根号级别的 所以搞出μ的前缀和然后分块处理. ----------------------------------------------------------------…
手动博客搬家: 本文发表于20171216 13:34:20, 原地址https://blog.csdn.net/suncongbo/article/details/78819470 URL: (Luogu)https://www.luogu.org/problem/show?pid=3455 (BZOJ)http://www.lydsy.com/JudgeOnline/problem.php?id=1101 题目大意: 有t次询问(\(t\le5e4\)), 每次给定a,b,d, 询问有多少对…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1101 [题目大意] 求[1,n][1,m]内gcd=k的情况 [题解] 考虑求[1,n][1,m]里gcd=k 等价于[1,n/k][1,m/k]里gcd=1 考虑求[1,n][1,m]里gcd=1 结果为sum(miu[d]*(n/d)*(m/d)) 预处理O(n^1.5) 由于n/d只有sqrt(n)种取值,所以可以预处理出miu[]的前缀和 询问时分段求和 [代码] #incl…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 #include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ; int T,n,m,D,u[N],pri[N];bool vis[N]; int rdn() { ;;char ch=getchar(); ;ch=getchar…
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=1101 题解: http://www.cnblogs.com/mrha/p/8203612.html 数学公式太难打了,核心思想是化成gcd(i,j)==1,然后用莫比乌斯反演变成枚举约数d,然后再搞式子 #include<cstdio> #include<algorithm> #define N 50005 typedef long long ll; using namesp…