UVA 11426 - GCD - Extreme (II) (数论)
来源:互联网 发布:阿里云企业邮箱地址 编辑:程序博客网 时间:2024/04/30 15:10
题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2421
题意简单。
题解:
设f(n)=gcd(1,n)+gcd(2,n)+……+gcd(n-1,n);s(n)=f(1)+f(2)+……f(n).所以有s(n)=s(n-1)+f(n).现在关键是求f(n)。
设g(n,i)表示所有满足gcd(x,n)=i的正整数x的个数i<n,那么f(n)=sum(i*g(n,i)),i的n的约数,gcd(x,n)=i -> gcd(x/i,n/i)=1,所以满足条件的x/i有phi(n/i)个。
但是如果依次计算f(n),需要枚举n的所以约数,如果吧思路逆过来,对每个i枚举他的倍数并更新f(n),时间复杂度就很小了。
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <cstdlib>#include <cmath>#include <vector>#include <list>#include <deque>#include <queue>#include <iterator>#include <stack>#include <map>#include <set>#include <algorithm>#include <cctype>using namespace std;typedef long long LL;const int N=4000001;const int mod=1000007;const int INF=0x3f3f3f3f;const double PI=acos(-1.0);LL phi[N],xh[N];void phi_table(){ int i,j; memset(phi,0,sizeof(phi)); xh[1]=0; phi[1]=1; for(i=2;i<=N;i++) { if(!phi[i]) { for(j=i;j<=N;j+=i) { if(!phi[j]) phi[j]=j; phi[j]=phi[j]/i*(i-1); } } for(j=i;j<=N;j+=i) xh[j]+=j/i*phi[i]; } for(i=2;i<=N;i++) xh[i]+=xh[i-1];}int main(){ int n,i,j; phi_table(); while(cin>>n&&n) { printf("%lld\n",xh[n]); } return 0;}
- UVA 11426 - GCD - Extreme (II) (数论)
- UVA 11426 - GCD - Extreme (II) (数论)
- uva 11426 - GCD - Extreme (II)(数论)
- Uva 11426 GCD - Extreme (II)(基本数论)
- [UVa 11426] GCD - Extreme (II) (数论 + 脑洞 + 技巧)
- UVA 11426 GCD - Extreme (II) (数论|欧拉函数)
- UVA 11426 - GCD - Extreme (II)
- UVA 11426 GCD - Extreme (II)
- uva 11426 GCD Extreme (II)
- UVA - 11426 GCD - Extreme (II)
- UVA:11426 GCD - Extreme (II)
- UVA 11426 GCD - Extreme (II)
- UVA 11426-GCD - Extreme (II)
- UVA 11426GCD - Extreme (II)
- UVA 11426 GCD - Extreme (II)
- UVA 11426 - GCD Extreme(II)
- UVA 11426 GCD Extreme (II)
- uva 11426 GCD - Extreme (II) (神奇的GCD)
- 【现代操作系统】第4章 存储管理
- .NET-C#超文本编辑器FreeTextBox使用
- poj 3013 Big Christmas Tree(最短路问题)
- 技巧-使用翻转效果
- Linq 如何实现 in 与 not in
- UVA 11426 - GCD - Extreme (II) (数论)
- linux下常用的一些函数
- 异或的性质及运用
- 矩阵转置的SSE汇编优化艺术
- 【CityEngine教程文档】 ---03 地图控制教程
- ABAP程序优化方法
- 【现代操作系统】第5章 输入/输出
- 搜笔记 开源库
- Android 左右滑屏 方向判断 ViewPager