***1133. Fibonacci Sequence(斐波那契数列,二分,数论)
1133. Fibonacci Sequence
Memory limit: 64 MB
Input
−1000 ≤ i, j, n ≤ 1000, i ≠ j,
−2·109 ≤ Fk ≤ 2·109 (k = min(i, j, n), …, max(i, j, n)).
Output
Sample
| input | output |
|---|---|
3 5 -1 4 5 |
12 |
#include <iostream>
using namespace std;
const int oo=;
int now;
__int64 i,fi,j,fj,n;
__int64 l=-oo,r=oo,mid,sum[];
int main()
{
cin >> i >> fi >> j >> fj >> n;
if (i > j)
{
swap(i,j);
swap(fi,fj);
}//进行调整,使得i比j考前
while (l <= r)
{//进行二分
mid=(l+r)>>;//先取中间值,mid表示第i+1个数的值
sum[]=fi;
sum[now=]=mid;
int k=i+,flag=-;
while (k <= j)
{//计算加法运算次数
now=(now+)%;
++k;
sum[now]=sum[(now+)%]+sum[(now+)%];
if (sum[now] > oo) flag=;//向上超界了用1进行标记
else if (sum[now] < (-oo)) flag=-;//超出了最低限用-1进行标记
if (flag != -) break;//超界了就不需要在进行运算了
}
if (flag == -)
{
if (sum[now] > fj) flag=;//没有超界但是大于fj表示mid开大了
else if (sum[now] < fj) flag=-;//没有超界但是运算到了j小于fj表示mid开小了
else flag=;//mid开正确了
}
if (flag == ) r=mid-;//开大了重置r
else if (flag == -) l=mid+;//开小了总之L
else if (flag == ) break;//正好则跳出
}
sum[]=fi;
sum[now=]=mid;//进行模拟找到第n个数
if (i < n)
{
int k=i+;
while (k <= n)
{
now=(now+)%;
++k;
sum[now]=sum[(now+)%]+sum[(now+)%];
}
}
else if (i > n)
{
int k=i-;
while (k >= n)
{
now=(now+)%;
--k;
sum[now]=sum[(now+)%]-sum[(now+)%];
}
}
else --now;
cout << sum[now] << endl;
return ;
}
***1133. Fibonacci Sequence(斐波那契数列,二分,数论)的更多相关文章
- Computational Complexity of Fibonacci Sequence / 斐波那契数列的时空复杂度
Fibonacci Sequence 维基百科 \(F(n) = F(n-1)+F(n-2)\),其中 \(F(0)=0, F(1)=1\),即该数列由 0 和 1 开始,之后的数字由相邻的前两项相加 ...
- 10、end关键字和Fibonacci series: 斐波纳契数列
# Fibonacci series: 斐波纳契数列 # 两个元素的总和确定了下一个数 a, b = 0, 1 #复合赋值表达式,a,b同时赋值0和1 while b < 10: print(b ...
- [Amazon] Program for Fibonacci numbers 斐波那契数列
The Fibonacci numbers are the numbers in the following integer sequence. 0, 1, 1, 2, 3, 5, 8, 13, 21 ...
- Fibonacci series(斐波纳契数列)的几种常见实现方式
费波那契数列的定义: 费波那契数列(意大利语:Successione di Fibonacci),又译费波拿契数.斐波那契数列.斐波那契数列.黄金切割数列. 在数学上,费波那契数列是以递归的方法来定义 ...
- 【算法】Fibonacci(斐波那契数列)相关问题
一.列出Fibonacci数列的前N个数 using System; using System.Collections.Generic; using System.Linq; using System ...
- 509. Fibonacci Number斐波那契数列
网址:https://leetcode.com/problems/fibonacci-number/ 原始的斐波那契数列 运用自底向上的动态规划最佳! 可以定义vector数组,但是占用较多内存空间 ...
- POJ 3070 Fibonacci【斐波那契数列/矩阵快速幂】
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 17171 Accepted: 11999 Descr ...
- Fibonacci(斐波那契数列)的第N位数
无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为F(n)=1 ...........(n=1或n=2)F(n)=F(n-1)+F(n-2).. ...
- 【LeetCode每天一题】Fibonacci Number(斐波那契数列)
The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such th ...
随机推荐
- Symfony没有安装依赖_PHP Fatal error: require(): Failed opening required
$ php bin/console server:run PHP Warning: require(D:\home\workspace\pd\app/../vendor/autoload.php): ...
- UITableView优化方案
1.UITableView的简单认识 > UITableView最核心的思想就是UITableViewCell的重用机制.简单的理解就是:UITableView只会创建一屏幕(或一屏幕多一点)的 ...
- 原生JavaScript封装Ajax
第一次开个人技术博客了,发的第一篇技术文章,欢迎指点…… 欢迎访问本人的独立博客:蓝克比尔 Ajax的实现主要分为四部分: 1.创建Ajax对象 // 创建ajax对象 var xhr = null; ...
- 【Python】考虑用生成器改写直接返回列表的函数
使用生成器的好处是显而易见的,可以使代码更加清晰,同时减小内存的消耗,当函数需要返回列表,把函数改写为生成器是相对容易的. 下面这两个函数返回字符串中每个单词的索引: def index_words1 ...
- centos-mysql 安装
初学者自编文档,如有错误,请指出,具体命令就不阐述了,不明白 度娘吧! nginx我是编译安装在服务器上 和其他安装应该会有区别 安装路径路径:/usr/local/ 安装包存放位置:/home/ap ...
- Thrift框架简介
功能:实现各个服务模块之间的跨语言.跨平台的通信,是RPC框架的一种,与dubbo类似. Thrift的应用原理: Thrift的部分功能相当于代码生成引擎,使用Thrift定义的语言编写*.Thri ...
- Mybatis(一)
jdbc开发 1)优点:简单易学,上手快,非常灵活构建SQL,效率高 2)缺点:代码繁琐,难以写出高质量的代码(例如:资源的释放,SQL注入安全性等) 开发者既要写业务逻辑,又要写对象的创建和销毁, ...
- 关于reportng生成的测试报告不按测试执行顺序的解决办法
需要修改TestResultComparator类的源码,源码自己去reportng官网http://reportng.uncommons.org/下载,因为reportng默认是按字母先后顺序进行排 ...
- java 守护线程
守护线程生命周期: 守护线程是运行在后台的一种特殊线程, 它独立于控制终端并且周期性地执行某种任务或者等待处理某些发生的事件. 也就是说守护线程不依赖于终端,但是依赖于系统,与系统“同生共死”. 当J ...
- css3选择器:nth-child和nth-of-type之间的差别
<section> <p>我是第1个p标签</p> <p>我是第2个p标签</p> </section> 然后对应2个选择器对应 ...