PE 530
2016-03-26 22:19
260 查看
orz rzz
题目大意:设 f(n)=∑d|ngcd(d,nd)f(n) = \sum_{d|n}gcd(d,\frac{n}{d}),F(n)=∑ni=1f(i)F(n) = \sum_{i = 1}^{n}f(i),求F(1015)F(10^{15})的值
题解:F(n)=∑ni=1∑d|igcd(d,id)F(n) = \sum_{i = 1}^n\sum_{d|i}gcd(d,\frac{i}d)
=∑d∑nd2i=1∑d′|i[gcd(d′,id′)==1]= \sum_d\sum_{i=1}^{\frac{n}{d^2}}\sum_{d'|i}[gcd(d',\frac{i}{d'})==1]
=∑d∑d′dμ(d′)∑n(dd′)2i=1σ0(i)= \sum_d\sum_{d'}d\mu(d')\sum_{i=1}^{\frac{n}{(dd')^2}}\sigma_0(i)
=∑nd=1ϕ(d)∑nd2i=1σ0(i)= \sum_{d=1}^n\phi(d)\sum_{i=1}^{\frac{n}{d^2}}\sigma_0(i)
时间复杂度O(n√lnn)O(\sqrt{n}\ln n)
题目大意:设 f(n)=∑d|ngcd(d,nd)f(n) = \sum_{d|n}gcd(d,\frac{n}{d}),F(n)=∑ni=1f(i)F(n) = \sum_{i = 1}^{n}f(i),求F(1015)F(10^{15})的值
题解:F(n)=∑ni=1∑d|igcd(d,id)F(n) = \sum_{i = 1}^n\sum_{d|i}gcd(d,\frac{i}d)
=∑d∑nd2i=1∑d′|i[gcd(d′,id′)==1]= \sum_d\sum_{i=1}^{\frac{n}{d^2}}\sum_{d'|i}[gcd(d',\frac{i}{d'})==1]
=∑d∑d′dμ(d′)∑n(dd′)2i=1σ0(i)= \sum_d\sum_{d'}d\mu(d')\sum_{i=1}^{\frac{n}{(dd')^2}}\sigma_0(i)
=∑nd=1ϕ(d)∑nd2i=1σ0(i)= \sum_{d=1}^n\phi(d)\sum_{i=1}^{\frac{n}{d^2}}\sigma_0(i)
时间复杂度O(n√lnn)O(\sqrt{n}\ln n)
#include<iostream> #include<algorithm> #include<cstring> #include<string> #include<ctime> #include<cmath> #include<cstdlib> #include<cstdio> #define LL long long using namespace std; const LL n = 1000000000000000; LL sigma(LL n) { LL ret = 0; for (LL i = 1,j;i <= n;i = j + 1) { j = min(n / (n / i),n); ret += (j - i + 1) * (n / i); } return ret; } LL phi(LL x) { LL ret = 1; for (LL i = 2;i * i <= x;i ++) if (x % i == 0) { ret *= i - 1; for (x /= i;x % i == 0;ret *= i,x /= i); } if (x ^ 1) ret *= x - 1; return ret; } int main() { LL ans = 0; for (LL d = 1;d * d <= n;d ++) ans += phi(d) * sigma(n / d / d); cout << ans << endl; return 0; }
相关文章推荐
- Nginx+PHP+mysql
- error RC2108: expected numerical dialog constant
- Android View的几个位置坐标关系
- 根据经纬度和半径计算经纬度范围,根据两点经纬度计算距离
- Longest Increasing Subsequence(DP)
- Codeforces#103-C. Anagram Search-乱搞水题
- 使用CSS3实现响应式标题全屏居中和网站前端性能
- 2016总计划(二)
- Selenium WebDriver + Python 环境
- 第56课:揭秘SparkSQL和DataFrame的本质学习笔记
- #1032 : 最长回文子串
- iOS开发之Runtime机制深入解析
- win7,win8 64位 VS2010/VS2013调试报错
- 我的java学习之路
- 数据库连接及账号密码统一管理
- 2016年3月23日作业
- java小程序之可变长参数列表
- Redis 替代方案
- LinearLayout布局问题
- 报名公务员考试了