bzoj 1101 [POI2007]Zap——反演】的更多相关文章

题目: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…
求 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⌋同理, 而且数量是根号级别的 所以搞出μ的前缀和然后分块处理. ----------------------------------------------------------------…
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&…
[题目链接] 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…
题目: 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…
[题目分析] Dirichlet积+莫比乌斯函数. 对于莫比乌斯函数直接筛出处理前缀和. 对于后面向下取整的部分,可以分成sqrt(n)+sqrt(m)部分分别计算 学习了一下线性筛法. 积性函数可以在O(n)的时间内算出. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set>…
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.…
题目 传送门:QWQ 分析 莫比乌斯反演. 还不是很熟练qwq 代码 //bzoj1101 //给出a,b,d,询问有多少对二元组(x,y)满足gcd(x,y)=d.x<=a,y<=b #include <bits/stdc++.h> using namespace std; ; int n, p[maxn]; int mu(int m) { , k=m; ;i*i<=k;i++) { if(!(m%i)) { tmp++; m/=i; ; } } ) tmp++; )?-:…
http://www.lydsy.com/JudgeOnline/problem.php?id=1101 无限膜拜数论和分块orz 首先莫比乌斯函数的一些性质可以看<初等数论>或<具体数学>或贾志鹏的<线性筛法和积性函数> 我写一些笔记啥的吧.. 首先莫比乌斯函数的定义及一些性质(免去证明): $$\mu (n) =\begin{cases}1 & n=1\\(-1)^k & n=p_1p_2 \cdots p_k,质因子指数均为1且互不相同 \\0 &…
Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a ,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. \[ans=\sum_{i=1}^{a}\sum_{j=1}^{b}[gcd(i,j)=d] \] 反演一波 \[ans=\sum_{i=1}^{a}\sum_{j=1}^{b}\sum_{k|i \wedge k|j}\mu(k)\] 把\(k\)提前 \[ans=\sum_{…
bzoj 1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. Input 第一行包含一个正整数n,表示一共有n组询问.(1<=n<= 50000)接下来…
1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2951  Solved: 1293[Submit][Status][Discuss] Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. Input 第一行包含一个正整数n,表示一共有n组询问.(1…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 莫比乌斯反演 1101: [POI2007]Zap 设 \(f(i)\) 表示 \((x,y)\) \(x\in [1,a],y\in [1,b]\) 满足 \(gcd(x,y)=i\) 的对数 那么答案就是 \(f(d)\) 构造一个函数 \(g(i)\) 表示 \((x,y)\) \(x\in [1,a],y\in [1,b]\) 满足 \(gcd(x,y)|i\) 的对数 于是…
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.(…
题目: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…
先看一道例题:[POI2007]Zap BZOJ 洛谷 题目大意:$T$ 组数据,求 $\sum^n_{i=1}\sum^m_{j=1}[gcd(i,j)=k]$ $1\leq T\leq 50000,1\leq k\leq n,m\leq 50000$ 暴力做法 $O(Tnm\log\max(n,m))$ 不用说了,那有没有什么更好的做法呢? 我们定义一种函数叫莫比乌斯函数 $\mu$,它的定义是: 当 $n=1$ 时,$\mu(n)=1$ 当 $n$ 可以分解成 $p_1p_2...p_k$…
BZOJ1101 POI2007 Zap 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.(1<=d<=a,b<=50000) Output 对于每组询…
[BZOJ1101][POI2007]Zap 试题描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. 输入 第一行包含一个正整数n,表示一共有n组询问.(1<=n<= 50000)接下来n行,每行表示一个询问,每行三个正整数,分别为a,b,d.(1<=d<=a,b<=50000) 输出 对于每组询问,输出到输出文件zap…
bzoj 1103 [POI2007]大都市 描述 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员 Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为 1..n 的 n 个小村庄,某些村庄之间有一些双向的土路. 从每个村庄都恰好有一条路径到达村庄 1(即比特堡).并且,对于每个村庄,它到比特堡的路径恰好只经过编号比它的编号小的村庄.另外,对于所有道路而言,它们都不在除村庄以外的其他地点相遇.在这个未开化的地方,从来没有过高架…
BZOJ 1104 [POI2007]洪水 描述 AKD 市处在一个四面环山的谷地里.最近一场大暴雨引发了洪水,AKD 市全被水淹没了.Blue Mary,AKD 市的市长,召集了他的所有顾问(包括你)参加一个紧急会议.经过细致的商议之后,会议决定,调集若干巨型抽水机,将它们放在某些被水淹的区域,而后抽干洪水. 你手头有一张 AKD 市的地图.这张地图是边长为 mn 的矩形,被划分为 mn个 11 的小正方形.对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是 AKD 市的一个组成部分.…
bzoj [SDOI2014]数表 莫比乌斯反演 BIT 链接 bzoj luogu loj 思路 \[ \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}a*[f[gcd(i,j)]<=a] \] \[ f[]可以O(n)预处理出来 \] \[ \sum\limits_{k=1}^{n}f[k]*\sum\limits_{i=1}^{m}\sum\limits_{j=1}^{m}[gcd(i,j)==k] \] \[ \sum\limits_{k=1}^{n}…
手动博客搬家: 本文发表于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 给定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…
Description 回答T组询问,有多少组gcd(x,y)=d,x<=a, y<=b.T, a, b<=4e5. Solution 显然对于gcd=d的,应该把a/d b/d,然后转为gcd=1计算 计算用莫比乌斯反演相信大家都会 关键是有T组询问n^2会T 于是有这样一个优化可以做到每次sqrt(n) 每一次是ret+=mu[i]*(n/i)*(m/i) 可是除法向下取整所以会导致很多i的(n/i)*(m/i)一样 具体来说,向下取整得到的结果一定是约数所以对于(n/i)最多2sq…
对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d. 我们可以令F[n]=使得n|(x,y)的数对(x,y)个数 这个很容易得到,只需要让x,y中都有n这个因子就好了,也就是[a/n]*[b/n]个数对(向下取整) 然后设题中所要求的为f[n],很容易得知,F[n]=∑f[d](n|d) 莫比乌斯反演可以得到f[n]=∑μ(d/n)F[d](n|d) 这样是O(n),然而数据范围5*10^4显然不能通过 f[n]=∑μ(d/n)[a/d][b/d]…
点此看题面 大致题意: 求\(\sum_{x=1}^N\sum_{y=1}^M[gcd(x,y)==d]\). 一道类似的题目 推荐先去做一下这道题:[洛谷2257]YY的GCD,来初步了解一下莫比乌斯反演. 再来看这题,就非常简单了. 一些定义 按照上面提到的那题的思路,首先,我们可以定义\(f(d)\)和\(F(d)\)如下: \[f(d)=\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)==d]\] \[F(d)=\sum_{i=1}^N\sum_{j=1}^M[d|gc…
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…
最裸的莫比乌斯 #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define pii pair<int, int> using namespace std; ; ; const int inf = 0x3f3f3f3f; const LL INF = 0x3f3f3f3f3f3f3f3f; ; int p[N], is[N],…
https://www.luogu.org/problemnew/show/3455#sub http://www.lydsy.com/JudgeOnline/problem.php?id=1101 Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a ,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得到你的帮助. Input 第一行包含一个正整数n,表示一共有n组询问.(1<=n<…
其实这个用的是Mobius反演的第二种形式 F(d) = (n div d) * (m div d) f(d) = [ gcd(i,j)=d ] (i in [1,a], j in [1,b]) /************************************************************** Problem: 1101 User: idy002 Language: C++ Result: Accepted Time:6764 ms Memory:1688 kb **…