【洛谷题解】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’) 简单来说(会的人跳过就行): ...
随机推荐
- nowcoder 202F-平衡二叉树
题目链接 题目描述 平衡二叉树,顾名思义就是一棵“平衡”的二叉树.在这道题中,“平衡”的定义为,对于树中任意一个节点,都满足左右子树的高度差不超过 d. 空树的高度定义为0,单个节点的高度为1,其他情 ...
- BZOJ5092 分割序列(贪心)
设si为该序列的异或前缀和,则显然相当于求Σmax{sj+sj^si} (i=1~n,j=0~i).从高位到低位考虑,如果该位si为1,无论sj怎么填都是一样的:如果该位si为0,则sj该位应尽量为1 ...
- 【刷题】BZOJ 1977 [BeiJing2010组队]次小生成树 Tree
Description 小 C 最近学了很多最小生成树的算法,Prim 算法.Kurskal 算法.消圈算法等等. 正当小 C 洋洋得意之时,小 P 又来泼小 C 冷水了.小 P 说,让小 C 求出一 ...
- 【刷题】洛谷 P4234 最小差值生成树
题目描述 给定一个标号为从 \(1\) 到 \(n\) 的.有 \(m\) 条边的无向图,求边权最大值与最小值的差值最小的生成树. 输入输出格式 输入格式: 第一行两个数 \(n, m\) ,表示图的 ...
- [HDU4787]GRE Words Revenge 解题报告
这是我之前博客里提到的一道AC自动机的练手题,但是要完成这道题,我之前博客里提到的东西还不够,这里总结一下这道题. 这道题不是一般的裸的AC自动机,它的询问和插入是交叉出现的所以用我之前写的板子不大合 ...
- BZOJ2437 [Noi2011]兔兔与蛋蛋 【博弈论 + 二分图匹配】
题目链接 BZOJ2437 题解 和JSOI2014很像 只不过这题动态删点 如果我们把空位置看做\(X\)的话,就会发现我们走的路径是一个\(OX\)交错的路径 然后将图二分染色,当前点必胜,当且仅 ...
- 开源nginx_lua_waf部署安装
0x01 前言 ngx_lua_waf实现 WAF一句话描述,就是解析HTTP请求(协议解析模块),规则检测(规则模块),做不同的防御动作(动作模块),并将防御过程(日志模块)记录下来.所以本文中 ...
- centos_radhat升级系统
Centos/Redhat系统下,Yum升级操作系统版本方法: 很多情况下,系统安装的时候是一个版本,官方很快就会出新的版本,提高系统的安全性,以及一些漏洞补丁 通过以下步骤可以平滑将系统升级,例如C ...
- bzoj 2428: [HAOI2006]均分数据 && bzoj 3680 : 吊打XXX 模拟退火
每次把元素随便扔随机一个初始解,退火时每次随机拿一个元素扔到随机一个集合里,当温度高时因为状态不稳定扔到那个元素和最小的里边. 如果新解优,更新ans. 把原式拆一下,就可以用int存了. bzoj ...
- 【线性基/神仙题】P4151 [WC2011]最大XOR和路径
Description 给定一个无向连通图,边有边权,求一个 \(1~\sim n\) 的路径,最大化边权的异或和.如果一条边经过多次则计算多次. Input 第一行是两个整数 \(n,m\) 代表点 ...