HDU 4556 Stern-Brocot Tree
来源:互联网 发布:小米3淘宝旗舰店 编辑:程序博客网 时间:2024/04/28 02:21
题目:点击打开链接
Description
上图是一棵Stern-Brocot树,其生成规则如下:
从第1行到第n行,每行相邻两数a/b和c/d,产生中间数(a+c)/(b+d),置于下一行中。将一行的分数(包括0/1,1/0),进行约分简化,则每一行(包括0/1,1/0,1/1),不会出现两个相同的分数。若分子或者分母大于n,则去掉该分数,将剩下的分数,从小到大排序,得到数列F。
现在请您编程计算第n行的数列F的个数。
Input
输入包含多组测试用例,每组输入数据是一个正整数n(n<=1000000)。
Output
对于每组的测试数据n,请输出第n行的数列F的个数。
Sample Input
1246
Sample Output
351325
这个题目就是想说明,SB树和Farey序列的关系。
代码就几乎不用再写了,直接把我的博客略改即可。
代码:
#include<iostream>#include<stdio.h>using namespace std;long long phi[1000001];void get_phi(){for (int i = 1; i <= 1000000; i++)phi[i] = i;for (int i = 2; i <= 1000000; i++){if (phi[i] == i)for (int j = i; j <= 1000000; j += i)phi[j] = phi[j] / i*(i - 1);phi[i] += phi[i - 1];}}int main(){get_phi();int n;while (scanf("%d",&n)!=-1)printf("%llu\n", phi[n]*2+ 1);return 0;}
0 0
- HDU-4556-Stern-Brocot Tree
- hdu 4556 Stern-Brocot Tree
- hdu 4556 Stern-Brocot Tree
- HDU 4556 Stern-Brocot Tree
- hdu 4556 Stern-Brocot
- HDOJ 4556 Stern-Brocot Tree
- hdu4556-Stern-Brocot Tree
- hdu4556-Stern-Brocot Tree
- Hdu 6209 The Intersection(Stern-Brocot tree+二分)
- hdoj 4556 Stern-Brocot Tree(欧拉函数)
- hdu4556 西山居四 Stern-Brocot Tree
- PE 372 【类欧几里德】【Stern-Brocot Tree】
- HDOJ 题目4556Stern-Brocot Tree(数学,欧拉函数)
- hdoj Stern-Brocot Tree 4556 (欧拉函数打表)
- Farey序列(Stern-Brocot tree的衍生)
- [Codeforces 585C] Alice, Bob, Oranges and Apples (Stern-Brocot Tree + 更相减损法)
- hdu4556 Stern-Brocot Tree(欧拉函数递推关系)
- Farey序列与Stern-Brocot树
- EDID 详解
- [LeetCode]ZigZag Conversion
- android6.0权限等级
- Android L APP 如何获取sys file system 中节点的写权限
- 线程同步的几种方法
- HDU 4556 Stern-Brocot Tree
- 【NOIP提高组】数格子
- tomcat启用HTTPS的设置
- android studio 升级2.2 gradle升级2.2 DefaultManifestParser报错
- android 获取bitmap中的“主题色彩”
- gcc基本使用
- MMORPG外挂工作流程-----人工智能之状态机的原理和实现
- 简单的自定义空间,用代码代替xml的写法
- 数列编辑器 【NOIP2016提高A组模拟9.14】