1188 最大公约数之和 V2】的更多相关文章

1188 最大公约数之和 V2 题目来源: UVA 基准时间限制:2 秒 空间限制:262144 KB 分值: 160 难度:6级算法题   给出一个数N,输出小于等于N的所有数,两两之间的最大公约数之和.       相当于计算这段程序(程序中的gcd(i,j)表示i与j的最大公约数):   G=0; for(i=1;i<N;i++) for(j=i+1;j<=N;j++) {     G+=gcd(i,j); }   Input 第1行:1个数T,表示后面用作输入测试的数的数量.(1 &l…
1188 最大公约数之和 V2 题目来源: UVA 基准时间限制:2 秒 空间限制:262144 KB  给出一个数N,输出小于等于N的所有数,两两之间的最大公约数之和.       相当于计算这段程序(程序中的gcd(i,j)表示i与j的最大公约数):   G=0; for(i=1;i<N;i++) for(j=i+1;j<=N;j++) {     G+=gcd(i,j); }   Input 第1行:1个数T,表示后面用作输入测试的数的数量.(1 <= T <= 50000)…
https://www.51nod.com/Challenge/Problem.html#!#problemId=1188 求\(\sum\limits_{i=1}^{n-1}\sum\limits_{j=i+1}^{n}gcd(i,j)\) 首先交换求和\(\sum\limits_{j=2}^{n}\sum\limits_{i=1}^{j-1}gcd(i,j)=\sum\limits_{j=2}^{n}\sum\limits_{i=1}^{j}gcd(i,j)-j\) 像之前那样用莫比乌斯反演…
第二个\( O(T\sqrt(n)) \)复杂度T了..T了..T了...天地良心,这能差多少?! 于是跑去现算(. \[ \sum_{i=1}^{n-1}\sum_{j=i+1}^{n}gcd(i,j) \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}[gcd(i,j)==d] \] \[ \sum_{d=1}^{n}d(\sum_{j=1}^{n}\sum_{i=1}^{j}[gcd(i,j)==d]-\sum_{j=1}^{n}[g…
考虑每一个数对于答案的贡献.复杂度是O(nlogn)的.因为1/1+1/2+1/3+1/4......是logn级别的 //gcd(i,j)=2=>gcd(i/2,j/2)=1=>phi(n/d)*d;O(nlogn); #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> using namespace std; #define rep(i,s,t) fo…
题面 传送门 题解 口胡的整除分块单次询问\(O(\sqrt{n})\)的做法居然\(T\)了?那还是好好看正解吧-- 首先我们枚举\(j\),求对于每个\(j\)有所有\(i<j\)的\(\gcd(i,j)\)之和,然后可以转化成枚举\(\gcd d\),然后要满足\(\gcd(\frac{i}{d},\frac{j}{d})=1\) 那么最后的式子可以化成\[Ans=\sum_{j=2}^{n}\sum_{t|j,t<j}\varphi({j\over t})*t\] 复杂度和正常的筛法一…
1040 最大公约数之和 给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15 输入 1个数N(N <= 10^9) 输出 公约数之和 输入样例 6 输出样例 15 题解 \[ \sum_{i=1}^n\gcd(i,n)=\sum_{d|n}d\varphi(n) \] 暴力搞就行了. 1188 最大公约数之和 V2 给出一个数N,输出小于等于N的所有数,两两之间的最大公约数之和. 相当于计…
[题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 [题目大意] 求[1,n][1,n]最大公约数之和 [题解] 枚举最大公约数k,得到答案为2*∑(k*phi_sum(n/k))-n*(n+1)/2 phi_sum可以利用杜教筛实现 [代码] #include <cstdio> #include <algorithm> using namespace std; typedef lon…
1237 最大公约数之和 V3 题意:求\(\sum_{i=1}^n\sum_{j=1}^n(i,j)\) 令\(A(n)=\sum_{i=1}^n(n,i) = \sum_{d\mid n}d \cdot \varphi(\frac{n}{d})\) \(ans = 2*\sum_{i=1}^n A(i) -\sum_{i=1}^ni\) 套路推♂倒 \[ S(n) =\sum_{i=1}^n\sum_{d\mid i}d \cdot \varphi(\frac{i}{d}) =\sum_{i…
1040 最大公约数之和 题目来源: rihkddd 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15   Input 1个数N(N <= 10^9) Output 公约数之和 Input示例 6 Output示例 15 /* 51nod 1040 最大公约数之和(欧拉函数) 给你n,然后求[1-n]…
1040 最大公约数之和 题目连接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 Description 给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15 Input 1个数N(N <= 10^9) Output 公约数之和 Sample Input 6 Sample Output 15 Hint…
给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6 1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15   Input 1个数N(N <= 10^9) Output 公约数之和 Input示例 6 Output示例 15—————————————————————————这道题枚举 约数d 约数的贡献就是 $\sum_{d|n}\phi(\frac{n}{d})d$ 因为和n的最大公约数是d的 除以d之后就一定是和n/d 互质的 #inclu…
1040 最大公约数之和 给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6时,1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15 看起来很简单对吧,但是n<=1e9,所以暴力是不行的,所以要把公式进行推导. 引用51nod1040最大公约数之和(欧拉函数) 这个自己上手推一下也很好推的,不过没推过公式的可能不太懂. #include<cstdio> #include<cmath> typedef long long l…
求∑1<=i<=n∑1<=j<=ngcd(i,j) % P P = 10^9 + 7 2 <= n <= 10^10 这道题,明显就是杜教筛 推一下公式: 利用∑d|nphi(d) = n ans = ∑1<=i<=n∑1<=j<=n∑d|(i,j)phi(d) = ∑1<=d<=n∑1<=i<=n∑1<=j<=n[d|(i,j)]phi(d) = ∑1<=d<=nphi(d)∑1<=i<…
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. 比较基础的一道数论题. //注:本人觉得理解好这里有助于去理解burnside定理的优化 #include<bits/stdc++.h> using namespace std; typedef long long LL; LL Eular(LL n) { LL ret=n; ; i*i<=…
题意:给n,m,求出 思路:题意为求出1~m所有数和n的gcd之和.显然gcd为n的因数.我们都知道gcd(a,b)= c,那么gcd(a/c,b/c)= 1.也就是说我们枚举n所有的因数k,然后去找1~m/k中和n/k互质的个数就是gcd为k的个数.这个直接容斥就行. 代码: #include<iostream> #include<algorithm> #include<cstdio> #include<stdio.h> #include<strin…
BZOJ 2226 [Spoj 5971] LCMSum 这道题和上一道题十分类似. \[\begin{align*} \sum_{i = 1}^{n}\operatorname{LCM}(i, n) &= \sum_{i = 1}^{n}\frac{i \times n}{\operatorname{gcd}(i, n)}\\ &= n \times \sum_{i = 1}^{n}\frac{i}{\operatorname{gcd}(i, n)} \end{align*}\] 设\(…
给出2个数a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b). 例如:a = 1, b = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66. 由于结果可能很大,输出Mod 10^9 + 7的结果.(测试数据为随机数据,没有构造特别坑人的Test) Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 50000) 第2 - T + 1行:每行2个数a, b,中间用空格分隔(1 &…
给出一个n,求1-n这n个数,同n的最大公约数的和 n<=1e9 考虑枚举每个因数,对答案贡献的就是个数*大小…
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1040 给出一个n,求1-n这n个数,同n的最大公约数的和. 比较基础的一道数论题. //注:本人觉得理解好这里有助于去理解burnside定理的优化 #include<bits/stdc++.h> using namespace std; typedef long long LL; LL Eular(LL n) { LL ret=n; ; i*i<=…
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=569 此题目可以用筛选法的思想来做,但是用到一个欧拉函数 gcd(1,12)=1,gcd(5,12)=1,gcd(7,12)=1,gcd(11,12)=1, gcd(2,12)=2,gcd(10,12)=2, gcd(3,12)=3,gcd(9,12)=3, gcd(4,12)=4,gcd(8,12)=4, gcd(6,12)=6, gcd(12,12)=12, gcd(1,12)+gc…
题意:给出n,求: \[\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}\gcd(i,j)\] 多组数据,\(n<=4*10^6\) sol 今天心血来潮再来写一写式子 首先这里求的是无序对而且还不能相等所以说我第一遍样例都没过 那么如果你求出了\(\sum_{i=1}^{n}\sum_{j=1}^{n}\gcd(i,j)\),你就只要把这个答案减去\(\sum_{i=1}^{n}i\)再除以二就可以了.你可以当做是,你求出的那个东西就是一整个矩阵的和,而题目要求的只是正对角线上…
题面 求\(\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}gcd(i, j)\) n<=4000000,数据组数T<=100 答案保证在64位带符号整数范围内(long long就好) Sol 之前做了一道假的 先不管i,j是否有序,我们就求\(\sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i, j)\) 最后\(ans=(ans - (n + 1) * n / 2) / 2\)即可 推导 \(ans=\sum_{d=1}^{n}\sum_{i=1}^{\l…
题目链接 题意 其实就是求 \[\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)\] 思路 建议先看一下此题的一个弱化版 推一下式子 \[\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)\] \[= \sum\limits_{k=1}^nk\sum\limits_{i=1}^n\sum\limits_{j=1}^n[gcd(i,j)=k]\] \[=\sum\limits_{k=1}^nk\sum\limit…
题意:求 解: 最后一步转化是因为phi * I = Id,故Id * miu = phi 第二步是反演,中间省略了几步... 然后就这样A了......最终式子是个整除分块,后面用杜教筛求一下phi前缀和即可. #include <cstdio> #include <map> typedef long long LL; , T = ; ; int p[N], top, phi[N]; LL Phi[N], inv2; bool vis[N]; std::map<LL, LL…
题目链接 \(Description\) \(n\leq 10^{10}\),求 \[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)\ mod\ (1e9+7)\] \(Solution\) 首先 \[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{d=1}^nd\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=d]\] 注意不是\(\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{d=1}^n\sum…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1190 \[ \begin{aligned} &\sum_{i=a}^b\frac{ib}{(i,b)}\\ =&b\sum_{i=a}^b\frac i{(i,b)}\\ =&b\sum_{d|b}\sum_{i=a}^b[d|i]\left[\left(\frac id,\frac bd\right)=1\right]\frac id\\ =&b…
题目传送门 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 数学题真是做的又爽又痛苦,爽在于只要推出来公式基本上就是AC,痛苦就在于推公式... 题意很简单,求 $\Large\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}gcd(i,j)$ 其中$n\le 10^{10}$ 这个题有很多做法,除了普及组的$O(n^2\log n)$做法,还有用莫比乌斯反演+分块优化的$O(…
题面 传送门 题解 我好像做过这题-- \[ \begin{align} ans &=\sum_{i=1}^n\sum_{j=1}^n\gcd(i,j)\\ &=\sum_{d=1}^nd\sum_{i=1}^{\left\lfloor{n\over d}\right\rfloor}\sum_{j=1}^{\left\lfloor{n\over d}\right\rfloor}[\gcd(i,j)=1]\\ &=\sum_{d=1}^nd\left(\varphi({\left\l…
题解 传送门 题解 我是真的不明白这玩意儿是怎么跟反演扯上关系的-- 首先 \[ \begin{align} ans &=b\sum_{d|b}{1\over d}\sum_{i=a}^{b}i[\gcd(i,b)=d]\\ &=b\sum_{d|b}\sum_{i=\lceil{a\over d}\rceil}^{b\over d}i[gcd(i,{b\over d})=1]\\ \end{align} \] 然后有一个非常神仙的操作--就是强行反演一波,把\([n=1]\)化成\(\s…