【模拟8.03】斐波那契(fibonacci) (规律题)
就是找规律,发现每个父亲和孩子的差值都是距儿子最大的fibonacc
也是可证的
f[i]表示当前月的兔子总数
f[i]=f[i-1]+f[i-2](f[i-2]是新生的,f[i-1]是旧有的)
然后又学了一下set的用法
1 #include<iostream>
2 #include<cstdio>
3 #include<string>
4 #include<algorithm>
5 #include<cmath>
6 #include<vector>
7 #include<map>
8 #include<set>
9 #include<cstring>
10 #define MAXN 1000001
11 #define int long long
12 using namespace std;
13 int l[MAXN],r[MAXN];
14 set<int>v;
15 int f[MAXN];int m;
16 void set_work()
17 {
18 f[1]=1;f[2]=2;
19 v.insert(f[1]);v.insert(f[2]);
20 for(int i=3;i<=60;++i)
21 {
22 f[i]=f[i-1]+f[i-2];
23 v.insert(f[i]);
24 }
25 }
26 int find(int x)
27 {
28 set<int>::iterator it;
29 it=v.lower_bound(x);
30 it--;
31 return *it;
32 }
33 int LCA(int x,int y)
34 {
35 if(x==y)return x;
36 if(x>y)swap(x,y);
37 if(x+1==y)return 1ll;
38 set<int>ss;
39 ss.insert(x);
40 while(x!=1)
41 {
42 x-=find(x);
43 ss.insert(x);
44 }
45 while(y!=1)
46 {
47 y-=find(y);
48 if(ss.count(y)!=0)
49 {
50 return y;
51 }
52 }
53 return 1;
54 }
55 signed main()
56 {
57 scanf("%lld",&m);
58 for(int i=1;i<=m;++i)
59 {
60 scanf("%lld%lld",&l[i],&r[i]);
61 }
62 set_work();
63 for(int i=1;i<=m;++i)
64 {
65 printf("%lld\n",LCA(l[i],r[i]));
66 }
67 }
【模拟8.03】斐波那契(fibonacci) (规律题)的更多相关文章
- 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)
2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...
- 斐波那契(Fibonacci)数列的几种计算机解法
题目:斐波那契数列,又称黄金分割数列(F(n+1)/F(n)的极限是1:1.618,即黄金分割率),指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.…….在数学上,斐波纳契数列以如下 ...
- 斐波那契(Fibonacci)数列的七种实现方法
废话不多说,直接上代码 #include "stdio.h" #include "queue" #include "math.h" usin ...
- NOIP模拟赛T3 斐波那契
1.题目 求 \[\sum_{i=1}^n \sum_{j=1}^m \gcd(F_i,F_j) \] 其中 \(F_k\) 表示斐波那契数列的第 \(k\) 项,对 \(10^9 + 7\) 取模. ...
- 在sqlserver中做fibonacci(斐波那契)规律运算
--利用sqlserver来运算斐波那契规律 --利用事物与存储过程 declare @number intdeclare @A intdeclare @B intdeclare @C int set ...
- [洛谷P3938]:斐波那契(fibonacci)(数学)
题目传送门 题目描述 小$C$养了一些很可爱的兔子.有一天,小$C$突然发现兔子们都是严格按照伟大的数学家斐波那契提出的模型来进行繁衍:一对兔子从出生后第二个月起,每个月刚开始的时候都会产下一对小兔子 ...
- UVA12470—Tribonacci (类似斐波那契,简单题)
题目链接:https://vjudge.net/problem/UVA-12470 题目意思:我们都知道斐波那契数列F[i]=F[i-1]+F[i-2],现在我们要算这样的一个式子T[i]=T[i-1 ...
- HZOJ 斐波那契(fibonacci)
先说一个规律: 如图将每个月出生的兔子的编号写出来,可以发现一只兔子在哪一列他的父亲就是谁. 每列的首项可以通过菲波那契求得. 然后你就可以像我一样通过这个规律打表每个点的父亲,预处理出倍增数组,倍增 ...
- 如何用Python输出一个斐波那契Fibonacci数列
a,b = 0, 1 while b<100: print (b), a, b = b, a+b
随机推荐
- liunx服务器安装jdk
1.官网下载需要版本的jdk,官网地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.h ...
- 三分钟了解B2B CRM系统的特点
最近很多朋友想了解什么是B2B CRM系统,说到这里小Z先来给大家说说什么是B2B--B2B原本写作B to B,是Business-to-Business的缩写.正常来说就是企业与企业之间的生意往来 ...
- sed常用
行首添加字符串 # cat a [root@localhost b]# vim a 文件a将每行的第1列添加HEAD [root@localhost b]# sed 's/^/HEAD &/g ...
- IIS 10 设置FTP Passive Mode 固定端口
1. Run [Start] - [Server Manager] and Click [Tools] - [Internet Information Services (IIS) Manager]. ...
- ioctl 函数的FIOREAD参数
在学习ioctl 时常常跟 read, write 混淆.其实 ioctl 是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的. 而read,write 是把数据丢入缓冲区,硬件的驱动从缓冲 ...
- FOC_矢量控制相关资料
http://www.eepw.com.cn/news/listbylabel/label/FOC/ FOC(field-oriented control)为磁场导向控制,又称为矢量控制(vector ...
- Vue的基本使用和模版语法
Vue的基本使用和模版语法 一.Vue概述 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架 vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目 ...
- Python+Selenium学习笔记1 - pip命令
1.用pip命令安装模块 pip install 模块名 e.g. pip install qrcode 2.用pip卸载模块 pip uninstall 模块名 e.g. pip uninstall ...
- TensorFlow+TVM优化NMT神经机器翻译
TensorFlow+TVM优化NMT神经机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.本文为全球电子商务部署NMT服务. 目前,将Tr ...
- Mac设置charles证书信任