博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA - 11426 GCD - Extreme (II) (欧拉函数)
阅读量:5081 次
发布时间:2019-06-12

本文共 1799 字,大约阅读时间需要 5 分钟。

思路

将题意转化为$\sum_{i = 1}^{n} \sum_{j = 1}^{i - 1}gcd(i, j)$,考虑每个最大公因数的值$k$对答案的影响。假设

$gcd(A,B) = k$

那么肯定可以表示成

$gcd(ak,bk) = k$

$gcd(a, b) = 1$

假设$a>b$那么$b$有$\varphi (a)$种选法且$ak \leq n$等价于$a \leq \left \lfloor \frac{n}{k} \right \rfloor$,因此对于一种$k$,它对答案的贡献为

$\sum_{a = 2}^{\left \lfloor \frac{n}{k} \right \rfloor} k*\varphi (a)$

$k \sum_{a = 1}^{\left \lfloor \frac{n}{k} \right \rfloor} \varphi (a) - k$

$k (\sum_{a = 1}^{\left \lfloor \frac{n}{k} \right \rfloor} \varphi (a) - 1)$

所以

$ans = \sum_{k = 1}^{n} k (\sum_{a = 1}^{\left \lfloor \frac{n}{k} \right \rfloor} \varphi (a) - 1)$

维护欧拉函数前缀和之后整除分块,时间复杂度$O(n+\sqrt{n})$

代码

#include 
#include
#include
#include
#define DBG(x) cerr << #x << " = " << x << endlusing namespace std;typedef long long LL;const int N = 1e7 + 5;int n;int tag[N], pri[N], cnt;LL phi[N];LL pre[N];void getPrime() { phi[1] = 1; for(int i = 2; i < N; i++) { if(!tag[i]) { pri[cnt++] = i; phi[i] = i - 1; } for(int j = 0; j < cnt && i * pri[j] < N; j++) { tag[i * pri[j]] = 1; if(i % pri[j] == 0) { phi[i * pri[j]] = phi[i] * pri[j]; break; } phi[i * pri[j]] = phi[i] * (pri[j] - 1); } } for(int i = 1; i < N; i++) pre[i] = pre[i - 1] + phi[i];}int main() { getPrime(); while(~scanf("%d", &n) && n != 0) { LL ans = 0; for(LL l = 1, r; l <= n; l = r + 1) { r = 1LL * n / (1LL * n / l); LL tmp1 = ((r + l) * (r - l + 1)) / 2LL; LL tmp2 = pre[n / l] - 1LL; ans += tmp1 * tmp2; } printf("%lld\n", ans); } return 0;}/*101002000000*/

 

 

转载于:https://www.cnblogs.com/DuskOB/p/10725591.html

你可能感兴趣的文章
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>
进击吧!阶乘——大数乘法
查看>>
安卓学习资料推荐-25
查看>>
Mysql数据库备份和还原常用的命令
查看>>
关于退出当前页面在火狐的一些问题
查看>>
【项目实施】项目考核标准
查看>>
spring-aop AnnotationAwareAspectJAutoProxyCreator类
查看>>
经典入门_排序
查看>>
Redis Cluster高可用集群在线迁移操作记录【转】
查看>>
二、spring中装配bean
查看>>
VIM工具
查看>>
javascript闭包
查看>>
@Column标记持久化详细说明
查看>>
创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备...
查看>>
mysql8.0.13下载与安装图文教程
查看>>
站立会议08(冲刺2)
查看>>
url查询参数解析
查看>>
http://coolshell.cn/articles/10910.html
查看>>