hiho 113 Fibonacci

原创 2016年08月28日 22:07:13

问题描述

给定一个数组,其中数子小于10000, 求fibonacci 子串的个数。

解法

容易想到如果当前数字是fibonacci数列中的一个,那么以其结尾的fibonacci 子串个数为前一个fibonacci数字前一个的子串的个数。如果当前数字不是fibonacci 数列中的数字,则不需要考虑。

代码

#include <bits/stdc++.h>
using namespace std;
enum{maxn = 1000006, Mod=1000000007};
int f[maxn];
int num[maxn];
int n;
int bsearch(int a)
{
    int l =1, r = n;
    while(l<=r)
    {
        int m = l+(r-l)/2;
        if (f[m] == a)
            return m;
        if (f[m]  < a)
            l = m+1;
        else
            r = m-1;
    }
    return 0;
}
int main()
{
    //freopen("in.txt", "r", stdin);
    memset(num, 0, sizeof(num));
    f[1] = f[2] = 1;
    for (int i=3; i<maxn; ++i)
        f[i] = f[i-1] + f[i-2];
    scanf("%d", &n);
    for (int i=0; i< n; ++i)
    {
        int a;
        scanf("%d", &a);
        if (a==1)
        {
            num[2] = (num[2] + num[1]) %Mod;
            num[1] = (num[1] +1)%Mod;
        }
        else
        {
            int p = bsearch(a);
            if (p)
            {
                num[p] = (num[p] + num[p-1])%Mod;
            }
        }
    }
    int ret =0;
    for (int i=1; i<maxn; ++i)
        ret = (ret + num[i])%Mod;
    printf("%d\n", ret);
    return 0;
}

注意

1需要特殊考虑,因为fibonacci 中有两个1;

版权声明:本文为博主原创文章,未经博主允许不得转载。

113.将音频转化为MP3格式(lame库)

通过lame音频转码为mp3格式音频文件...

怎样把工作和升职大计结合起来 http://www.people.com.cn/GB/shenghuo/78/113/20020801/790056.html

怎样把工作和升职大计结合起来          别看当今媒体中长篇巨幅描写的都是所谓的“精英分子”,其实在各行各业中大多数是些勤勤恳恳...

LeetCode 113. Path Sum II(路径和)

原题网址:https://leetcode.com/problems/path-sum-ii/ Given a binary tree and a sum, find all root-to-l...
  • jmspan
  • jmspan
  • 2016年05月24日 00:19
  • 326

LeetCode 112&113 --Path Sum I & II;

Path Sum I Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that a...

【LeetCode】#112 #113 #437 Path Sum Series

首先要说明二叉树的问题就是用递归来做,基本没有其他方法,因为这数据结构基本只能用递归遍历,不要把事情想复杂了。...

SGU 113 Nearly prime numbers

切这种水题还是挺快的~ #include #include #include #include #include #include #include #include #include #inclu...
  • zz_1215
  • zz_1215
  • 2012年03月24日 14:26
  • 405

[国嵌学习日志][113][字符设备驱动模型]

设备驱动模型 1.驱动初始化(驱动安装) 1.1.分配设备描述符 1.2.初始化设备描述符 1.3.注册设备描述符 1.4.硬件初始化 2.实现设备操作(驱动操作) 3.驱动注销(驱动卸...

codeforces 113D&bzoj 3270

题目大意: 一张图,N(N 对于每个点,有Pi的几率留在原地,否则等概率的向相连的点走去。 问对于每个点,有多少的概率两个人在这个点相遇? 这题显然是概率型dp+高斯消元。但是要注意求方程组的方法。 ...

[LeetCode]113.Path Sum II

【题目】 Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals th...

Volume 1. Elementary Problem Solving :: Maths - Misc Uva 113,10161,253,621,10025,591,107

刘汝佳 算法入门 第一版 Uva题目集合()
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hiho 113 Fibonacci
举报原因:
原因补充:

(最多只允许输入30个字)