SP5971 LCMSUM 数论】的更多相关文章

题面 题目要我们求这个: \[\sum_{i=1}^n lcm(i,n)\] 开始化式子: \[\sum_{i=1}^{n} \frac{i*n}{gcd(i,n)}\] \[\sum_{d|n} \sum_{i=1}^{\frac{n}{d}} i*n[gcd(i,\frac{n}{d})=1]\] \[n*\sum_{d|n}\sum_{i=1}^{d}i[gcd(i,d)=1]\] 注意那个\(\sum_{i=1}^{d}i[gcd(i,d)=1]\)是求\([1,d]\)中所有与\(d\…
2226: [Spoj 5971] LCMSum Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 578  Solved: 259[Submit][Status] Description Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n,n), where LCM(i,n) denotes the Least Common Multiple of the integers i a…
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2226 题解: 题目要求的是Σn*i/gcd(i,n) i∈[1,n] 把n提出来变成Σi/gcd(i,n) i∈[1,n] 最后乘个n 设gcd(i,n)==d 我们枚举约数可以得到 ∑(∑i/d*(gcd(i,n)==d)) (外面的Σ枚举d) 把i/d这个式子除以d可以得到 Σ( Σj*(gcd(j,n/d)==1) ) (外面Σ枚举d,j与n互质) 由于n/d与d等价 Σ( Σj*(…
一个基于观察不依赖于反演的做法. 首先 \(\rm lcm\) 是不好算的,转化为计算 \(\rm gcd\) 的问题,求: \[\sum\limits_{i = 1} ^ n \frac{in}{\gcd(i, n)} \] 注意到 \(\gcd(n - i, n) = \gcd(i, n), (n - i) \times n + in = n ^ 2\),可以考虑将 \(\gcd(n - i, n), \gcd(i, n)\) 一起计算. 具体地,将原式乘 \(2\), 前后配对.需要注意的…
P1890 gcd区间 \(\gcd\) 是满足结合律的,所以考虑用 ST 表解决 时间复杂度 \(O((n\log n+m)\log a_i)\) 考虑到 \(n\) 很小,你也可以直接算出所有的区间 \(\gcd\) 时间复杂度 \(O(n^2\log a_i+m)\) 实现的时候我写了 ST 表 加了 fread&fwrite IO优化,跑得还是非常快的 #include<stdio.h> #include<ctype.h> #define gc (l==r&…
初等数论学习笔记 I:同余相关. 初等数论学习笔记 II:分解质因数. 1. 数论函数 本篇笔记所有内容均与数论函数相关.因此充分了解各种数论函数的名称,定义,符号和性质是必要的. 1.1 相关定义 数论函数:定义域为正整数的函数称为 数论函数.因其在所有正整数处均有定义,故可视作数列.OI 中常见的数论函数的陪域(即可能的取值范围)为整数. 加性函数:若对于任意 \(a, b\in \mathbb{N}_+\) 且 \(a\perp b\) 均有 \(f(ab) = f(a) + f(b)\)…
gcd套路变换 GCD https://www.luogu.org/problem/P2568 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. $ 1<=N<=10^7$ 答案是n*n矩阵中每两个数之间gcd==1的数对个数 考虑把\(n\times n\)的矩阵分成两部分,即从对角线劈开,设每一部分的答案为ans,则最终答案为$ ans*2 - 对角线上的(即n以内的质数个数)$ 这个把矩阵分成两部分的方法很有用,记一下吧 \[ ans = \…
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*}\] 设\(…
2401: 陶陶的难题I Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 89  Solved: 24[Submit][Status] Description 最近陶陶在研究数论,某天他偶然遇到一道题:对于给定的正整数���,求出 下面这样一个式子的值: 其中LCM(a���, b���)表示正整数���和���最小公倍数,即能同时被a���和b���整除的最小正 整数. 作为神犇的陶陶,当然轻松秒杀了这道题.不过他希望你写一个程序,用来 检验他算…
C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据,看看有没有结论. 2 3 4 5 6 7 8 9 10 11 12 (人数) 1 2 2 3 3 3 4 4 4 4 4 (比赛数) 发现比赛数的增长成斐波那契.维护一个前缀和即可. #include <bits/stdc++.h> #define ll long long using names…