POJ 2478 Farey Sequence(n级法雷数列的元素个数)

原创 2016年05月31日 01:18:17

题目链接:
POJ 2478 Farey Sequence
题意:
求n级法雷数列的元素个数。(不包含0/1, 1/1)
分析:
考虑n级法雷数列比n-1级法雷数列多出来的元素,可以得到:f[n] = f[n - 1] + euler[n]

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <climits>
#include <cmath>
#include <ctime>
#include <cassert>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
using namespace std;
typedef long long ll;
const int MAX_N = 1000010;

int n;
ll euler[MAX_N], f[MAX_N];

void GetEuler()
{
    memset(euler, 0, sizeof(euler));
    euler[1] = 1;
    for(int i = 2; i < MAX_N; i++){
        if(euler[i] == 0){
            for(int j = i; j < MAX_N; j += i){
                if(euler[j] == 0) euler[j] = j;
                euler[j] = euler[j] / i * (i - 1);
            }
        }
    }
}

void init()
{
    GetEuler();
    f[2] = 1;
    for(int i = 3; i < MAX_N; i++){
        f[i] = f[i - 1] + euler[i];
    }
}

int main()
{
    init();
    while(~scanf("%d", &n) && n){
        printf("%lld\n", f[n]);
    }
    return 0;
}
版权声明:缥缈玉京人,想语然、京兆眉妩。

【数论】法雷数列

【数论】法雷数列 F2 = {1/2} F3 = {1/3, 1/2, 2/3} F4 = {1/4, 1/3, 1/2, 2/3, 3/4} F5 = {1/5, 1/4, 1/3,...
  • nepaul
  • nepaul
  • 2011年05月22日 18:48
  • 852

法雷数列

http://topic.csdn.net/u/20090530/19/912d79b3-f9d0-44d7-8bf5-2dc60be0a197.html 考虑在0和1之间的所有分母不大于N的最简分数...
  • hikaliv
  • hikaliv
  • 2009年05月30日 20:38
  • 1779

HDU-4123 Bob’s Race(树型dp+RMQ)

传送门:HDU-4123 题意:有n个点组成一棵树编号为1~n,定义一个点的最远距离为从该点出发的最长简单路径,有m次询问:求最大区间长度,使得区间内所有点最远距离的最大值-最远距离的最小值 题解:先...

HDU 4123 Bob’s Race(树形DP+RMQ)

 题目大意:给定一棵树,每一个点都从当前位置走到距离最远的位置,1~n的连续区间中最大并且走的最远距离差值不超过Q的区间右多大。 思路:首先求出每个点能到达的最远距离,这一步有两种做法: 第...

poj2478 Farey Sequence(法雷级数+欧拉函数式素数筛)

http://poj.org/problem?id=2478 题意:求第n项的法雷级数是多少。 思路:法雷级数,百度百科就可以知道后一项和前一项的差值就是与该数互质的数的个数,因为如果...

POJ 2478 Farey Sequence 快速求欧拉函数/法雷级数

题解: E(x)表示比x小的且与x互质的正整数的个数。 1.若p是素数,E(p)=p-1。 2.E(p^k)=p^k-p^(k-1)=(p-1)*P^(k-1) 证:令n=p^k,小于...
  • Tsaid
  • Tsaid
  • 2012年02月27日 21:02
  • 811

(Relax 数论1.8)POJ 2478 Farey Sequence(欧拉函数:前n项欧拉数之和)

#include #include #include using namespace std; typedef long long ll; const int maxn = 1000015...

poj 2478 Farey Sequence(基于素数筛法求欧拉函数)

http://poj.org/problem?id=2478 求欧拉函数的模板。 初涉欧拉函数,先学一学它基本的性质。 1.欧拉函数是求小于n且和n互质(包括1)的正整数的个数。记为φ(...

法雷级数[Farey Sequence]

在昨天的比赛中,  雷级数Fn定义为所有分母小于等于n,并且值介于0到1之间的既约分数(分子分母互素)从小到大排列所组成的序列。即    Fn = { a / b, gcd(a,b) = 1 ...

POJ2478 Farey Sequence

题目大意:求1~n区间欧拉函数的个数。 思路:直接欧拉函数的递推式的模板撸过~~做了这道题~~从此不再相信C++编译器了~~尼玛坑爹啊~~这道题~~C++RE,G++轻松撸过~~ 关于欧拉函数的递...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 2478 Farey Sequence(n级法雷数列的元素个数)
举报原因:
原因补充:

(最多只允许输入30个字)