链接:https://www.nowcoder.com/acm/contest/121/J
来源:牛客网

题目描述

大家知道,黑猫有很多的迷弟迷妹,当然也有相亲相爱的基友,这其中就有一些二五仔是黑猫的小老弟。小老弟是如何产生的呢?聪明的iko告诉黑猫,其实是有规律的(她怎么知道???)!

一开始,有两个原始二五仔,代号0/1和1/1,

从原始二五仔到第n代小老弟,每代相邻两个小老弟a/b和c/d,产生一个新的小老弟(a+c)/(b+d),成为下一代新成员。将每一代的小老弟代号约分(包括0/1,1/1),进行约分简化,则每一代的代号(包括0/1,1/1),不会出现两个相同的分数。若分子或者分母大于n,则去掉该代号,将剩下的分数,从小到大排序,得到小老弟名单数列F。

现在,黑猫为了让这些小老弟往后稍稍,请您编程计算第n代的名单数列F的个数。

输入描述:

先输入一个数t,然后t组数据,每行一个数字n(n<10000)

输出描述:

输出第n代名单有多少人。
示例1

输入

2
1
4

输出

2
7

示例2

输入

3
8803
9017
8370

输出

23559251
24718873
21296477

【分析】:可以发现,这棵树从中间分开,就是法里数列!法里数列长度f[n]=f[n-1]+φ(n)

法里数列:

Farey数列Fn对于每个n( n>=2 ),如果0<a<b<=n 且 ab互质即a/b为不可约有理数,那么就在Fn集合中且以递增序列排序。
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, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5}

欧拉函数:

在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。

#include<bits/stdc++.h>
#include<cstdio>
#include<string>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<cstring>
#include<set>
#include<queue>
#include<algorithm>
#include<vector>
#include<map>
#include<cctype>
#include<stack>
#include<sstream>
#include<list>
#include<assert.h>
#include<bitset>
#include<numeric>
#define debug() puts("++++")
#define gcd(a,b) __gcd(a,b)
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define fi first
#define se second
#define pb push_back
#define sqr(x) ((x)*(x))
#define ms(a,b) memset(a,b,sizeof(a))
#define sz size()
#define be begin()
#define pu push_up
#define pd push_down
#define cl clear()
#define lowbit(x) -x&x
#define all 1,n,1
#define rep(i,n,x) for(int i=(x); i<(n); i++)
#define in freopen("in.in","r",stdin)
#define out freopen("out.out","w",stdout)
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> P;
const int INF = 0x3f3f3f3f;
const LL LNF = 1e18;
const int maxn = 1e3 + 20;
const int maxm = 1e6 + 10;
const double PI = acos(-1.0);
const double eps = 1e-8;
const int dx[] = {-1,1,0,0,1,1,-1,-1};
const int dy[] = {0,0,1,-1,1,-1,1,-1};
const int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int monn[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int n,k,t;
int e[maxm];
int sum[maxm],res = 0;
void init()
{ms(e,0);e[1]=1;for(int i=2;i<=maxm;i++){if(!e[i])for(int j=i;j<=maxm;j+=i){if(!e[j]) e[j]=j;e[j]=e[j]/i*(i-1);}}
}
int main()
{init();sum[1]=2;for(int i=2;i<=maxm;i++)sum[i]=sum[i-1]+e[i]; //可以发现,这棵树从中间分开,就是法里数列~法里数列长度f[n]=f[n-1]+φ(n)
cin>>t;while(t--){cin>>n;cout<<sum[n]<<endl;}
}

转载于:https://www.cnblogs.com/Roni-i/p/9038066.html

陕西师范大学第七届程序设计竞赛网络同步赛 J 黑猫的小老弟【数论/法拉数列/欧拉函数】...相关推荐

  1. 陕西师范大学第七届程序设计竞赛网络同步赛题解

    心累,昨天一天3个比赛,全部炸掉,这个陕西师范的比赛我真的读不懂题目,只搞出来7题,难受 A,B,F签到题,不讲了,只讲C,D,I,K 链接:https://www.nowcoder.com/acm/ ...

  2. 陕西师范大学第七届程序设计竞赛 C题 iko和她的糖

    链接: https://www.nowcoder.com/acm/contest/121/C 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言26 ...

  3. 华中农业大学第六届程序设计大赛网络同步赛 J.幻化(思维)

    幻化 传送门 晚上chipizz同学突然问我这道题,然后我口胡了一下先把aaa数组的i" role="presentation" style="position ...

  4. 2022年 文远知行杯 GDUT 第十六届程序设计竞赛(同步赛) 部分题解

    今年做出来的题还没去年多,看来是题目质量高了(我又变菜了). 同步赛地址:文远知行杯广东工业大学第十六届程序设计竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJB B ...

  5. “东信杯”广西大学第一届程序设计竞赛(同步赛)D、数论只会GCD 【博弈 分类讨论】...

    传送门:https://ac.nowcoder.com/acm/contest/283/D 题目描述 小西买了一堆肥宅快乐水和肥宅快乐茶,准备和室友比谁更肥宅. 快乐水有A瓶,快乐茶B瓶. 小西和室友 ...

  6. 2017年西南民族大学程序设计竞赛-网络同步赛-(A~K)

    今天下午自己做的比赛,离AK最近的一次,其他题都非常顺利,C,E两题没做出来,E题明显的快速幂,我也知道是longlong溢出了,就是没能解决,其实就是先将n%mod再去算乘方,就少了一小行代码啊有木 ...

  7. 次短路问题(陕西师范大学第九届ACM程序设计竞赛-F 新冠病毒要回家)

    求到顶点v的次短路时,有两种情况,要么是到其他某个顶点u的最短路再加上u->v的边,要么是到某个顶点u的次短路再加上u->v的边. 一般我们用Dijkstra求得最短路(无负权边),由此我 ...

  8. E-捡贝壳 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛)

    E-捡贝壳 2021年广东工业大学第十五届文远知行杯程序设计竞赛(同步赛) 小明来到一片海滩上,他很喜欢捡贝壳,但他只喜欢质量为x的倍数的贝壳. 贝壳被排列成一条直线,下标从1到n编号,小明打算从编号 ...

  9. 2020年广东工业大学第十届文远知行杯新生程序设计竞赛(同步赛)G.排解忧伤

    2020年广东工业大学第十届文远知行杯新生程序设计竞赛(同步赛)G.排解忧伤 题目链接 题目描述 猪猪参加小米赞助的icpc比赛之后惨遭打铁,为了排解忧伤,他开始观察嘉宾席. 嘉宾席是间隔为1,一字排 ...

最新文章

  1. 基于CENTOS7 Linux高可用集群LVS+Keepalived配置
  2. python 协程并发
  3. show line numbers
  4. SPOJ - VLATTICE
  5. 【RK PX30】 瑞芯微四核64位工业级芯片PX30 | 安卓核心板
  6. 大数据实效_全流程监督 让大数据督查取得实效
  7. LeetCode 396. 旋转函数(数学)
  8. Python编程各种推导式详解
  9. 微信自定义菜单扩容?
  10. centos 7安装zabbix 3.0
  11. python开根号函数图像_使用matplotlib / python的平方根刻度
  12. ip地址规划工具_ROS、Simulink、Carsim的互联与规划、控制算法的验证
  13. 串口隔离内外网的通信协议设计
  14. 不确定性原理的前世今生(转载)
  15. 阿里云的ECS服务器1M宽带等于多少入网kbps和出网kbps
  16. jsp_servle(3)
  17. OrCAD Capture CIS 17.2导入Altium Designer原理图
  18. python与其他的数据分析有什么区别_学好python和数据分析有什么关系?
  19. 大陆人往往认为要想混得好,必须认…
  20. 百度地图开发-检索功能

热门文章

  1. SwitchHosts——便捷切换hosts
  2. 百度编辑器 UEditor 多图上传弹窗中去掉【在线管理】和【图片搜索】Tab页
  3. 大一下Java大作业——双人联机小游戏森林冰火人
  4. Android Support库百分比布局
  5. Python奇技淫巧
  6. Word文档转换Markdown文档
  7. Java—统计一篇英文文章中出现的不重复单词的个数
  8. Prolific USB-to-Serial Comm Port最新程序不支持win11怎么处理
  9. RationalDMIS 7.1 如何更改CAD模型的坐标系
  10. ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge(状压dp)