CF#213DIV2:B The Fibonacci Segment
You have array a1, a2, ..., an. Segment [l, r] (1 ≤ l ≤ r ≤ n) is good if ai = ai - 1 + ai - 2, for all i (l + 2 ≤ i ≤ r).
Let's define len([l, r]) = r - l + 1, len([l, r]) is the length of the segment [l, r]. Segment [l1, r1], is longer than segment [l2, r2], if len([l1, r1]) > len([l2, r2]).
Your task is to find a good segment of the maximum length in array a. Note that a segment of length 1 or 2 is always good.
The first line contains a single integer n (1 ≤ n ≤ 105) — the number of elements in the array. The second line contains integers: a1, a2, ..., an (0 ≤ ai ≤ 109).
Print the length of the longest good segment in array a.
10 1 2 3 5 8 13 21 34 55 89
10
5 1 1 1 1 1
2
找出符合a[i] = a[i-1]+a[i-2]的最长长度
没有考虑0的状况。。。。。。蛋疼,长久没做CF了,坑成球了。。。
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;int a[100005],b[100005],len;int main()
{int maxn,sum;int i,n;while(~scanf("%d",&n)){sum = 0;for(i = 0; i<n; i++){scanf("%d",&a[i]);sum+=a[i];}if(sum == 0){printf("%d\n",n);continue;}if(n == 1){printf("1\n");continue;}if(n == 2){printf("2\n");continue;}len = 0;int l,r,flag = 1;for(i = 2; i<n; i++){if(a[i-1]+a[i-2] == a[i])b[len++] = 1;elseb[len++] = 0;}maxn = 0;l = 0;r = 0;for(i = 0; i<len; i++){if(b[i] == 1){if(flag){l = i;flag = 0;}elser = i;}else{if(r-l+1>maxn && r!=l)maxn = r-l+1;flag = 1;l = 0;r = 0;}}if(r-l+1>maxn && r!=l)maxn = r-l+1;printf("%d\n",maxn+2);}return 0;
}
转载于:https://www.cnblogs.com/riasky/p/3433118.html
CF#213DIV2:B The Fibonacci Segment相关推荐
- 《编程之美》读书笔记08:2.9 Fibonacci序列
<编程之美>读书笔记08:2.9 Fibonacci序列 计算Fibonacci序列最直接的方法就是利用递推公式 F(n+2)=F(n+1)+F(n).而用通项公式来求解是错误的,用浮点数 ...
- C语言 编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中。其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34...该数列除前两项之外,其他任意
编写程序:请将Fibonacci数列前30项中的偶数值找出来,存储到一维数组中.其中,Fibonacci数列如下:1,1,2,3,5,8,13,21,34-该数列除前两项之外,其他任意一项都是相邻的前 ...
- oracle 分区表 变大,Oracle11G新特性:分区表分区默认segment大小64k变为8M
Oracle11G新特性:分区表分区默认segment大小64k变为8M 2017-02-08 在oracle11.2创建分区表,每个分区默认大小为8M,是由_partition_large_exte ...
- [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解
原文转载自林健随笔的"浅议Fibonacci(斐波纳契)数列求解" Fibonacci 数列 描述了动物繁殖数量.植物花序变化等自然规律.作为一个经典的数学问题,Fibonacci ...
- AS91创建历史资产卡片报错:消息号 FAA_MD036 segment 00001: Status ‘In Preparation‘; no data transfer possible
文章目录 一.业务场景-AS91 二.问题分析和解决-FAA_CMP_LDT 一.业务场景-AS91 T-CODE: AS91 公司代码:2A00 参看详细信息 消息号 FAA_MD036 CoCd ...
- day16:递归思想——Fibonacci 斐波那契数列
一.斐波那契数列(Fibonacci sequence),又称黄金分割数列,这个数列最早是由印度数学家提出来的. 该序列的前几项是这样的:0,1,1,2,3,5,8,13,21,34,⋯ 在数学上,斐 ...
- Paper2:Fast 3D Line Segment Detection From Unorganized Point Cloud
文献下载链接:https://download.csdn.net/download/m0_37957160/12543541 摘要: 本文提出了一种非常简单有效的算法,从大规模无序点云中进行3维线段的 ...
- UVa-12333:Revenge of Fibonacci 高精度
之前自己仿照紫书上写了高精度库,完善了乘法.减法,并且通过了和C++高精度库GMP的对拍测试,并在一些OJ上过了一些高精度的模板题,代码仓库地址:https://github.com/Edward-E ...
- codeforces B. The Fibonacci Segment 解题报告
题目链接:http://codeforces.com/problemset/problem/365/B 题目意思:简单来说,就是要找出最长的斐波纳契长度. 解决的方法不难,但是要注意更新左区间和右区间 ...
- CF题目:1238C. Standard Free2play(思维,数论)
题目链接:题目原文 题目大意: 起初玩家站在h高度的悬崖,接下来有h个平台,每个平台都有两个状态 (隐藏或者显现),然后给出n个平台,代表这些平台的起初状态是显现 的,对于玩家当前处于的平台x,玩家如 ...
最新文章
- HTML样式offset[Direction] 和 style.[direction]的区别
- Dateset学习笔记
- Linux用户和HDFS和Hive权限关系
- C++常用方法笔记资料
- Wijmo 2016年蓝图
- 如何下载php-5.5.38.tar.gz_搭建PHP服务器php-5.3.28.tar.gz
- docker 其他电脑访问权限_docker – 从远程计算机连接到容器
- 一次性搭建Hadoop高可用集群
- mrtg监控短信报警 linux,[原]使用MRTG画图进行监控
- CodeForces 584 D.Dima and Lisa(数论)
- Apache CarbonData学习资料汇总
- pycharm 运行celery_调试celery遇到的坑
- sas 导入csv文件_sas导入txt、csv文件方法
- 无法在路径“C:\WINDOWS\TEMP\”中创建临时文件: 拒绝访问。
- 面试经验//Java新手如何制定优秀的职业规划?看大牛怎么说!
- wordart-在线生成要想的图片做为报告的门面
- Python——验证码输入
- 光遇脚本弹琴_光遇自动弹琴脚本手机版
- iPhone SDK 包含哪些东西?
- ASP.NET微信快速开发框架源码【源码分享】