zoukankan      html  css  js  c++  java
  • codeforces B. The Fibonacci Segment 解题报告

    题目链接:http://codeforces.com/problemset/problem/365/B

    题目意思:简单来说,就是要找出最长的斐波纳契长度。  

          解决的方法不难,但是要注意更新左区间和右区间的值,而且需要把当前求出的斐波纳契长度和之前求出的斐波纳契长度进行对比,以便更新得出的最长的斐波纳契长度。

          特别注意的是,序列只有一个、两个或者没有斐波纳契长度的处理。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 using namespace std;
     5 
     6 const int maxn = 1e5 + 5;
     7 int a[maxn];
     8 
     9 int main()
    10 {
    11     int n, i, l, r, len, lent;
    12     while (scanf("%d", &n) != EOF)
    13     {
    14     //    freopen("in.txt", "r", stdin);
    15         for (i = 1; i <= n; i++)
    16             scanf("%d", &a[i]);
    17         lent = len = l = r = 1;
    18         int flag = 0;
    19         int flag1 = 0;
    20         for (i = 3; i <= n; i++)
    21         {
    22             if (a[i] == a[i-1] + a[i-2])
    23             {
    24                 flag1 = 1;
    25                 r = i;
    26                 len = r - l + 1;    // 当前长度
    27                 if (lent < len)
    28                     lent = len;
    29     
    30             }
    31             else
    32             {
    33                 if (!flag && flag1)
    34                 {
    35                     lent = len;  // 第一个求出的斐波纳契长度,以便后面下一次求出的斐波纳契长度有得比较
    36                     flag = 1;
    37                 }
    38                 l = i-1;   //更新左区间的下标
    39             }
    40         }
    41         if (!flag1)
    42         {
    43             if (n == 1)    //序列只有一个数
    44                 printf("1
    ");
    45             else      //没有斐波纳契数且序列数目多于一个
    46                 printf("2
    ");
    47         }
    48         else
    49         {
    50             printf("%d
    ", lent);
    51         }
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    ios 手势加变形
    ios 懒加载
    [leetCode]1111. 有效括号的嵌套深度
    [leetCode]面试题 08.07. 无重复字符串的排列组合
    [leetCode]46. 全排列
    [leetCode]37. 解数独
    [leetCode]面试题 08.09. 括号
    torch.Tensor 与 numpy.ndarray的相互转化
    [leetCode]93. 复原IP地址
    [leetCode]15. 三数之和
  • 原文地址:https://www.cnblogs.com/windysai/p/3436641.html
Copyright © 2011-2022 走看看