【洛谷题解】P2303 [SDOi2012]Longge的问题
题目传送门:链接。
能自己推出正确的式子的感觉真的很好!
题意简述:
求\(\sum_{i=1}^{n}gcd(i,n)\)。\(n\leq 2^{32}\)。
题解:
我们开始化简式子:
\(\sum_{i=1}^{n}gcd(i,n)\)
\(=\sum_{j=1}^{n}\left(j\times\sum_{i=1}^{n}\left[gcd(i,n)=j\right]\right)\)
\(=\sum_{j=1}^{n}\left(j\times\sum_{i=1}^{n}\left[gcd(i/j,n/j)=1\right]\left(j|i,j|n\right)\right)\)
\(=\sum_{j=1}^{n}\left(j\times\varphi\left(n/j\right)\left(j|n\right)\right)\)
\(=\sum_{j|n}\left(j\times\varphi\left(n/j\right)\right)\)
到这里就可以直接计算了。
但是还可以进一步化简!(以下的\(p\)为质数)
\(\sum_{j|n}(j\times\varphi(n/j))\)
\(=\sum_{j|n}(n/j\times\varphi\left(j\right))\)
\(=\sum_{j|n}(n/j\times(j\cdot\prod_{p|j}\frac{p-1}{p}))\)
\(=\sum_{j|n}(n\cdot\prod_{p|j}\frac{p-1}{p})\)
\(=n\times\sum_{j|n}\prod_{p|j}\frac{p-1}{p}\)
接下来我们令\(n=p_1^{b_1}p_2^{b_2}p_3^{b_3}\cdots p_k^{b_k}\),并定义\(f_i=\frac{p_i-1}{p_i}\)。
那么\(n\)的因子\(j\)可以表示为:\(j=p_1^{c_1}p_2^{c_2}p_3^{c_3}\cdots p_k^{c_k}\),满足\(0\leq c_i\leq b_i\)。
那么\(\prod_{p|j}\frac{p-1}{p}=\prod_{i=1}^kf_i[c_i>0]\)。
我们观察一类\(\prod_{i=1}^kf_i[c_i>0]\)相等的\(j\),它们必要满足在\(i\)相等的情况下,\(c_i\)同时大于0或\(c_i\)同时等于0。
那么这一类的\(j\)有多少个呢?如果这类\(j\)有质因子\(p_{q_1},p_{q_2},p_{q_3},\cdots,p_{q_g}\)。
那么这类\(j\)的答案为\(\prod_{i=1}^gf_{q_i}\),而个数为\(\prod_{i=1}^gb_{q_i}\)。
\(b_i\)就是原来\(n\)的质因数分解的指数。
那么对答案的贡献为:\(\prod_{i=1}^g\chi_{q_i}\)。这里\(\chi_i=f_i\cdot b_i\)。
发现每一个质因子的贡献都是独立的,那么最后我们枚举\(n\)的每一个质因子取不取,得到最后的答案:\(n\cdot\prod_{i=1}^{k}(\chi_i+1)\)。
举个例子:如果\(n\)只有\(3\)个质因子,那么答案为\(n\cdot(1+\chi_1+\chi_2+\chi_3+\chi_1\chi_2+\chi_1\chi_3+\chi_2\chi_3+\chi_1\chi_2\chi_3)\)。
显然可以化简为:\(n\cdot(\chi_1+1)\cdot(\chi_2+1)\cdot(\chi_3+1)\)。
当然可以类比到质因数更多的情况。
总之,答案就是:\(n\cdot\prod_{i=1}^{k}\frac{b_i\cdot p_i-b_i+p_i}{p_i}\)。
代码:
#include<cstdio>
long long n;
long long f(){
long long ans=n; long long i;
for(i=;i*i<=n;++i) if(n%i==){
int b=;
while(n%i==) ++b,n/=i;
ans/=i;
ans*=b*i-b+i;
} if(n>) ans/=n, ans*=n+n-;
return ans;
}
int main(){
scanf("%lld",&n);
printf("%lld",f());
return ;
}
【洛谷题解】P2303 [SDOi2012]Longge的问题的更多相关文章
- 洛谷 P2303 [SDOi2012]Longge的问题 解题报告
P2303 [SDOi2012]Longge的问题 题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数\(N\),你需要 ...
- 洛谷 题解 UVA572 【油田 Oil Deposits】
这是我在洛谷上的第一篇题解!!!!!!!! 这个其实很简单的 我是一只卡在了结束条件这里所以一直听取WA声一片,详细解释代码里见 #include<iostream> #include&l ...
- 洛谷 题解 P1600 【天天爱跑步】 (NOIP2016)
必须得说,这是一道难题(尤其对于我这样普及组205分的蒟蒻) 提交结果(NOIP2016 天天爱跑步): OJ名 编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间 Libre ...
- 洛谷题解P4314CPU监控--线段树
题目链接 https://www.luogu.org/problemnew/show/P4314 https://www.lydsy.com/JudgeOnline/problem.php?id=30 ...
- 洛谷P2303 [SDOi2012]Longge的问题
题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...
- 洛谷P2303 [SDOi2012] Longge的问题 数论
看懂了题解,太妙了TT但是想解释的话可能要很多数学公式打起来太麻烦了TT所以我就先只放代码具体推演的过程我先写在纸上然后拍下来做成图片放上来算辣quq 好的那我先滚去做题了做完这题就把题解放上来.因为 ...
- 洛谷题解 CF777A 【Shell Game】
同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...
- 洛谷题解 CF807A 【Is it rated?】
同步题解 题目 好吧,来说说思路: 1.先读入啦~(≧▽≦)/~啦啦啦 2.判断a[i]赛前赛后是否同分数,如果分数不同,则输出,return 0 . 3.如果同分数,则判断a[i]赛前(或赛后)是否 ...
- 洛谷题解 P1138 【第k小整数】
蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): ...
随机推荐
- linux下安装jenkins
我们不用离线安装方式 第一步.必须验证java环境 第二步.我们这里使用yum命令进行在线安装,使用service命令进行启动 1.wget -O /etc/yum.repos.d/jenkins.r ...
- 【spring学习笔记二】Bean
### bean的三种实例化方式: 1.构造 2.静态工厂 3.实例工厂 其中,工厂就是工厂的概念,工厂函数factor-method会返回她生产出来的产品类. 而构造初始化也可以选择初始化方式和销毁 ...
- 洛谷 P2389 电脑班的裁员 解题报告
题意: 给定一段长为N的序列,选取其中的至多M段使这些子段和最大. 当N=1000时,我们可以采用动态规划解法 令\(dp[i][j][k]\)代表当前选至位置\(i\)处于第\(j\)段当前是否选取 ...
- 【uoj129】 NOI2015—寿司晚宴
http://uoj.ac/problem/129 (题目链接) 题意 给出2~n这n-1个数,求选2个集合,使得从两集合中任意各选取1个数出来它们都互质.求方案数. Solution PoPoQQQ ...
- Web Service(上)
1.XML CDATA指不应由XML解析器进行解析的文本数据. 在XML元素中,<和&是非法的.解析器会把字符<解释为新元素的开始,把字符&解释为字符实体的开始. 某些文本 ...
- bzoj 3928: [Cerc2014] Outer space invaders
$f[i][j]$表示消灭起始时间在$(i,j)$内的外星人所花费的最小代价. 考虑在这个区间内距离最远的外星人h,在他的区间中一定要选一个点要开一炮,而且这一炮可以顺便把其他跨过这个点的敌人消灭,剩 ...
- Python【经典类与新式类】
经典类多继承的调用方法顺序是:深度优先查询,如下图: 新式类多继承的调用方法顺序是:广度优先查询,如下图: 可以使用下面的代码进行实验验证: #经典类class A: def __init__ ...
- Ansible8:Playbook循环
目录 1.with_items 2.with_nested嵌套循环 3.with_dict 4.with_fileglob文件匹配遍历 5.with_lines 6.with_subelement遍历 ...
- 针对《面试心得与总结—BAT、网易、蘑菇街》一文中出现的技术问题的收集与整理
最近,我在ImportNew网站上,看到了这篇文章,觉得总结的非常好,就默默的收藏起来了,觉得日后一定要好好整理学习一下,昨天突然发现在脉脉的行业头条中,居然也推送了这篇文章,更加坚定了我整理的信心. ...
- java基础-Integer类常用方法介绍
java基础-Integer类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需 ...