hdu4556 Stern-Brocot Tree(欧拉函数递推关系)
来源:互联网 发布:如何安装ps软件 编辑:程序博客网 时间:2024/05/17 07:28
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4556
题目:根据题目要求,求解出答案,看题目中的图,找出其中的规律
学到的东西:关于分数类的递推关系,要多联系欧拉函数(欧拉函数求解n比n小与n互素的个数也包括1,所以如果以x作为分母,那么它能构成的真分数且不可约分即为x的欧拉函数值)
代码:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=1e6+10;#define ll __int64//const int mod=1e9+7;ll phi[N];void Euler(){ phi[1]=1; for(int i=2;i<N;i++) phi[i]=i; for(int i=2;i<N;i++) if(phi[i]==i) for(int j=i;j<N;j+=i) phi[j]=phi[j]/i*(i-1);//先进行除法是为了防止中间数据的溢出}void solve(){ phi[1]=3; //for(int i=2;i<20;i++) cout<<phi[i]<<" "; for(int i=2;i<N;i++) phi[i]=(2*phi[i]+phi[i-1]);}int main(){ Euler(); solve(); int x;while(~scanf("%d",&x)){ printf("%I64d\n",phi[x]); }}
1 0
- hdu4556 Stern-Brocot Tree(欧拉函数递推关系)
- hdu4556-Stern-Brocot Tree
- hdu4556-Stern-Brocot Tree
- hdu4556 西山居四 Stern-Brocot Tree
- hdoj 4556 Stern-Brocot Tree(欧拉函数)
- HDOJ 题目4556Stern-Brocot Tree(数学,欧拉函数)
- hdoj Stern-Brocot Tree 4556 (欧拉函数打表)
- hdu4556(欧拉函数)
- hdu4556(欧拉函数)
- hdu4556 欧拉函数
- HDU4556(递推求欧拉函数)
- HDU-4556-Stern-Brocot Tree
- hdu 4556 Stern-Brocot Tree
- hdu 4556 Stern-Brocot Tree
- HDOJ 4556 Stern-Brocot Tree
- HDU 4556 Stern-Brocot Tree
- Farey序列(Stern-Brocot tree的衍生)
- Hdu 6209 The Intersection(Stern-Brocot tree+二分)
- 设置键盘发送按钮置灰、不可点击
- 《Thinking in Java》——静态、非静态成员变量、子句的初始化顺序(含继承)及对象创建过程
- Socks CodeForces
- mui增加自定义图标
- android用户界面详尽教程实例
- hdu4556 Stern-Brocot Tree(欧拉函数递推关系)
- MyBatis+MySQL 返回插入记录的主键ID
- 字典序全排列
- TensorFlow中RNN网络的实现和关键参数选择
- (一)Voronoi图定义及性质
- 浅析Response对象&&Request对象
- Yeelink初步体验
- 二叉树求深度和宽度,叶子节点数,总结点数
- 模板:排序(二)