51nod 1594 Gcd and Phi(莫比乌斯反演)】的更多相关文章

题目链接 传送门 思路 如果这题是这样的: \[ F(n)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\phi(gcd(i,j)) \] 那么我们可能会想到下面方法进行反演: \[ \begin{aligned} F(n)=&\sum\limits_{k=1}^{n}\phi(k)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[gcd(i,j)=k]&\\ =&\sum\limits_{k=1}^{n}…
OTZ 又被吊打了...我当初学的都去哪了??? 思路:反演套路? 提交:\(1\)次 题解: 求\(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(\varphi(i),\varphi(j)))\) 设\(c[i]=\sum_{j=1}^n[\varphi(j)==i]\) 有: \(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(i,j))*c[i]*c[j]\) 欧拉反演一下,把\(gcd\)扔出来 \(\sum_{i=1}^…
[CJOJ2512]gcd之和(莫比乌斯反演) 题面 给定\(n,m(n,m<=10^7)\) 求 \[\sum_{i=1}^n\sum_{j=1}^mgcd(i,j)\] 题解 首先把公因数直接提出来 \[\sum_{d=1}^nd\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}[gcd(i,j)==1]\] 很明显 设 \[f(x)=\sum_{i=1}^{a}\sum_{j=1}^{b}[gcd(i,j)==x]\] \[g(x)=\sum_{x|d}f(d)\] \[g(…
题解 跟随小迪学姐的步伐,学习一下数论 小迪学姐太巨了! 这道题的式子很好推嘛 \(\sum_{i = 1}^{n} \sum_{j = 1}^{n} \sum_{d|\phi(i),\phi(j)} \phi(d) [gcd(\frac{\phi(i)}{d},\frac{\phi(j)}{d}) == 1]\) \(\sum_{i = 1}^{n} \sum_{j = 1}^{n} \sum_{d|\phi(i),\phi(j)} \phi(d) \sum_{t | \frac{\phi(i…
[题目]GCD of Divisors [题意]给定f(n)=Σd|n gcd(d,n/d)的前缀和F(n),n=10^15. [算法]莫比乌斯反演 [题解]参考:任之洲数论函数.pdf 这个范围显然杜教筛也是做不了的,而且考虑直接化简f(n)也遇到了困难,所以考虑将前缀和的Σ一起化简. $$F(n)=\sum_{i=1}^{n}\sum_{d|i}(d,\frac{i}{d})$$ 这一步很常见的是第一重改为枚举倍数,但这样化简后面就推不下去了. 这道题必须最后转成$\sigma_0(n)$才…
题目链接:https://www.luogu.org/problemnew/show/P2568#sub 题目大意: 计算​$\sum_{x=1}^n\sum_{y=1}^n [gcd(x,y)==prime]​$ 题解: 解法一:莫比乌斯反演套路题 其实这样就可以了,但是还可以优化一下子 设​​T=dp ​ 整除分块就好了,其实这就和 yy的gcd 一样了 解法二:欧拉函数 考虑上面的第一个式子​可以化简成 ​ tot是n以内质数的数量 这是因为考虑到每次都两次计算了​$\varphi(1)$…
题目:GCD SUM 题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=39872 算法:莫比乌斯反演.优化 #include<stdio.h> #define N 100001 typedef long long LL; }; ; int mu[N]; LL f[N],ff[N]; //缩短时间 /* 莫比乌斯函数mu[i]的定义: 1. 如果 i 是素数,那么mu[i]为-1; 2. 如果 i 是由多个不同的素数组成的,那么mu[i]为-1…
题目链接:https://cn.vjudge.net/problem/HDU-1695#author=541607120101 感觉讲的很好的一个博客:https://www.cnblogs.com/peng-ym/p/8647856.html 今天刚开始学莫比乌斯反演,先据我所了解的说一下. 首先是莫比乌斯函数. 1,mu(x).当x为1时,mu(1)等于1. 2,当x为素数时,mu(x)=-1. 3,当x能唯一分解成多个不同的素数相乘的时候(不能有重复的素数)mu(x)=(-1)的k次方,k…
题意:给出序列[a1..aN],整数M和k,求对1-M中的每个整数d,构建新的序列[b1...bN],使其满足: 1. \(1 \le bi \le M\) 2. \(gcd(b 1, b 2, -, b N) = d\) 3. 恰好有k个位置 \(bi!=ai\) 求对每个d,有多少种满足条件的序列 分析:对于前两个条件,就是单纯的莫比乌斯反演. 令\(F(d) = [d|gcd(b1...bN)]\) \(f(d) = [gcd(b1...bN)]=d]\) 则$f(n) = \sum_{x…
点此看题面 大致题意: 一个长度为\(n\)的数组,实现两种操作:将满足\(gcd(i,k)=d\)的\(a_i\)加上\(v\),询问\(\sum_{i=1}^xa_i\). 对于修改操作的推式子 莫比乌斯反演真是个神奇而又有趣的东西...... 考虑修改操作是将满足\(gcd(i,k)=d\)的\(a_i\)加上\(v\),则若\(d\not| k\),显然是不存在满足条件的\(i\)的,可以直接忽略这一修改操作(忘记判断结果调到心态爆炸......) 否则,也就相当于: \[a_i+=v\…
先放知识点: 莫比乌斯反演 卢卡斯定理求组合数 乘法逆元 快速幂取模 GCD of Sequence Alice is playing a game with Bob. Alice shows N integers a 1, a 2, -, a N, and M, K. She says each integers 1 ≤ a i ≤ M. And now Alice wants to ask for each d = 1 to M, how many different sequences b…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ33.html 题解 首先我们把问题转化成处理一个数组 ans ,其中 ans[i] 表示 d(u,a) 和 d(v,a) 同时为 i 的倍数的 (u,v) 个数.(最后求答案的时候只要莫比乌斯反演回来就好了.) 注意一下我的代码中对于 (u,v) 有祖先关系的是分开考虑的. 先点分治. 对于一个点分中心 x ,我们把答案分两部分考虑. 1. 在子树 x 中满足 LCA(u,v) = x 的 (u,v)…
[题意]给定a和b,求满足a<=lcm(x,y)<=b && x<y的数对(x,y)个数.a,b<=10^11. [算法]莫比乌斯反演+组合计数 [题解]★具体推导过程参考:51nod1222 最小公倍数计数 过程运用到的技巧: 1.将所有i和j的已知因子提取出来压缩上届. 2.将带有μ(k)的k提到最前面,从而后面变成单纯的三元组形式. 最终形式: $$ans=\sum_{k=1}^{\sqrt n} \mu(k)  \sum_{d}    \sum_{i} \s…
参考:https://www.cnblogs.com/SilverNebula/p/7045199.html 所是反演其实反演作用不大,又是一道做起来感觉诡异的题 转成前缀和相减的形式 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}[\frac{i*j}{gcd(i,j)}\leq n] \] \[ \sum_{d=1}^{n}\sum_{i=1}^{\left \lfloor \frac{n}{d}\right \rfloor}\sum_{j=1}^{\left \lfloor…
http://www.spoj.com/problems/PGCD/en/ 题意: 给出a,b区间,求该区间内满足gcd(x,y)=质数的个数. 思路: 设f(n)为 gcd(x,y)=p的个数,那么F(n)为 p | gcd(x,y)的个数,显然可得F(n)=(x/p)*(y/p). 这道题目因为可以是不同的质数,所以需要枚举质数, 但是这样枚举太耗时,所以在这里令t=pk, 这样一来的话,我们只需要预处理u(t/p)的前缀和,之后像之前的题一样分块处理就可以了. #include<iostr…
https://www.luogu.org/problemnew/show/UVA11424 原本以为是一道四倍经验题来的. 因为输入的n很多导致像之前那样 \(O(n)\) 计算变得非常荒谬. 那么我们就需要引入一个整除分块! 首先预处理欧拉函数的前缀和,然后丢进分块里面搞一搞. 那么就是 \(O(n+t\sqrt{n})\) #include<bits/stdc++.h> using namespace std; #define ll long long #define N 4000005…
首先由这样一个式子:\( d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \)大概感性证明一下吧我不会证 然后开始推: \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \] \[ \sum_{p=1}^{n}\sum_{q=1}^{n}[gcd(p,q)==1]\sum_{p|i}\sum_{q|j}\frac{pj}{q} \] \[…
1584 加权约数和 题意:求\(\sum_{i=1}^{N} \sum_{j=1}^{N} {\max(i,j)\cdot \sigma(i\cdot j)}\) 多组数据\(n \le 10^6, T \le 50000\) 这道题有两步我感到非常神奇.tls好强啊. 首先,怎么处理\(max(i,j)\) \[ max(i,j) = \sum_{k=1}^n[k\le i \ or\ k \le j] = n-\sum_{k=1}^n[k>i][k>j] \] 这样转化之后再代入,可以得…
一通套路之后得到 求出中间那个函数的前缀和的话就可以整除分块了. 暴力求的话复杂度其实很优秀了,大约在n~nlogn之间. 不过可以线性筛做到严格线性.考虑其最小质因子,如果是平方因子那么只有其有贡献,否则由于多了一个质因子,将函数值取反并加上该质因子贡献. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #includ…
传送门 发现自己对mobius反演的理解比较浅显-- 首先我们只需要维护每一个数的出现次数\(\mod 2\)的值,那么实际上我们只需要使用\(bitset\)进行维护,每一次加入一个数将其对应次数异或\(1\).那么\(2\)操作就相当于将集合\(x\)对应的\(bitset\)赋值为\(y\)与\(z\)的异或和. 看到\(3\)操作中的gcd,考虑莫比乌斯反演.我们在加入一个数到集合中的时候,不是加入它本身,而是加入它的所有因子.这样我们的\(3\)操作的实质就是一个按位与操作了. 对于\…
手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/article/details/79506484 题目链接: (Luogu)https://www.luogu.org/problemnew/show/P3172 (BZOJ)http://www.lydsy.com/JudgeOnline/problem.php?id=3930 题目大意: 给定N,M,L,R,从区间[L,R]内选出N个整数使得它们的gcd恰好为m…
[51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\(sgcd\)表示次大公约数. 题解 明摆着\(sgcd\)就是在\(gcd\)的基础上除掉\(gcd\)的最小因数. 所以直接枚举\(gcd\). \[\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^n sgcd(i,j)^k\\ &=\sum_{i=1…
UVA11426 GCD - Extreme (II) 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 10 100 200000 0 输出样例#1: 67 13015 143295493160 Solution 这道题我用莫比乌斯反演和欧拉函数都写了一遍,发现欧拉函数比莫比乌斯反演优秀? 求所有\(gcd=k\)的数对的个数,记作\(f[k],ans=\sum_{i=1}^{n}(f[i]-1)\),为什么还要-1,我们注意到\(j=i+1\),自己与自己…
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:…
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…
易得 $\sum\limits_{g=1}^{n} g \sum\limits_{k=1}^{n} \mu(k) \lfloor\frac{n}{gk}\rfloor \lfloor\frac{n}{gk}\rfloor $ 记 \(T=gk\) 枚举 \(T\) ,注意这里既然满足 \(T=gk\) 要保证两个乘起来确实是 \(T\) ,选择把 \(k\) 换成 $\frac{T}{g} $ . $\sum\limits_{T=1}^{n} \lfloor\frac{n}{T}\rfloor…
用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{d=1}^{n}[gcd(i,j)==d]d \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd(i,j)==d] \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{\left…
题意:给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对 1<=N<=10^7 思路:莫比乌斯反演,同BZOJ2820…… ; ..max]of int64; prime,flag,f,mu:..max]of longint; n,m,i,j,t,v,cas:longint; function clac(n:longint):int64; var x,i,pos:longint; begin clac:=; i:=; while i<=n do…
2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 2534  Solved: 1129 [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)…
题意:求(1,b)区间和(1,d)区间里面gcd(x, y) = k的数的对数(1<=x<=b , 1<= y <= d). 知识点: 莫比乌斯反演/*12*/ 线性筛求莫比乌斯反演函数: void Init() { memset(vis,0,sizeof(vis)); mu[1] = 1; cnt = 0; for(int i=2; i<N; i++) { if(!vis[i]) { prime[cnt++] = i; mu[i] = -1; } for(int j=0;…