时间限制: 1 s

空间限制:
128000 KB

题目等级
: 大师 Master

题解


题目描述 Description

Fibonacci词定义如下:FIB1 = b  FIB2 = a 当k >= 1时, FIBk+2 = FIBk+1*FIBk 

其中* 表示词的连接。因此,我们有:

FIB3 = ab;     FIB4 = aba;    FIB5 = abaab;     FIB6 = abaababa.

问题是,对给定的词,问该词在FIBn中出现多少次。


输入描述 Input Description

输入有两行,第一行为给出的只含有a 或 b的词,长度不超过30.第二行给出一个正整数n, n <= 200.


输出描述 Output
Description

对给定的词,输出在FIBn中出现的次数


样例输入 Sample Input

aba

6


样例输出 Sample Output

3

错误代码:

#include

using namespace std;

#include

#include

char fib[201][1000000],ch[31],n,sum=0;

void input();

void search();

int main()

{

input();

search();

printf("%d",sum);

return 0;

}

void search()

{

int chlong=strlen(ch),fiblong=strlen(fib[n]);

int fibl=0,chl=0;

while(fibl

{

int cpyfibl=fibl;

while(fib[n][cpyfibl]==ch[chl]&&chl

{

chl++;

cpyfibl++;

}

if(chl==chlong)

{

sum++;

chl=0;

}

if(chl!=chlong)

{

chl=0;

}

fibl++;

}

}

void input()

{

scanf("%s",ch);

scanf("%d",&n);

fib[1][0]='b';

fib[2][0]='a';

for(int i=3;i<=n;++i)

{

strcpy(fib[i],fib[i-1]);

strcat(fib[i],fib[i-2]);

}

}

记录第i个词的前M-1位和后M-1位,在递推的时候合并并且更新答案就可以了。

其中M表示所求字符串的长度。

特判:如果M=0的话直接上Fib数。

注意要高精,压四位很好写吧,那个20的常数是高精带来的。

53.FIB词链的更多相关文章

  1. 校内OJ 1128 词链(link)(Trie+DFS)

    1128: 词链(link) 时间限制: 1 Sec  内存限制: 64 MB 提交: 23  解决: 7 [提交][状态][讨论版] 题目描述 给定一个仅包含小写字母的英文单词表,其中每个单词最多包 ...

  2. 词链(link)

    词链(link) 题目描述 给定一个仅包含小写字母的英文单词表,其中每个单词最多包含50个字母.如果一张由一个词或多个词组成的表中,每个单词(除了最后一个)都是排在它后面的单词的前缀,则称此表为一个词 ...

  3. RQNOJ 429 词链:单调栈

    题目链接:https://www.rqnoj.cn/problem/429 题意: 如果一张由一个词或多个词组成的表中,每个单词(除了最后一个)都是排在它后面的单词的前缀,则称此表为一个词链. 如:i ...

  4. P1127 词链

    P1127 词链 题目描述 如果单词X的末字母与单词Y的首字母相同,则X与Y可以相连成X.Y.(注意:X.Y之间是英文的句号“.”).例如,单词dog与单词gopher,则dog与gopher可以相连 ...

  5. cogs 173. 词链 字典树模板

    173. 词链 ★★☆   输入文件:link.in   输出文件:link.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]给定一个仅包含小写字母的英文单词表,其中每个 ...

  6. codevs与noi做题改错本目录

    从2016.2.13开始: 1.  排序超时的问题---------目录:-测试习题 2.  超高精度乘法超时问题-----------目录:高精度计算 算法:快速傅里叶算法. 压位算法 3. 高精度 ...

  7. 洛谷P1127-词链

    Problem 洛谷P1127-词链 Accept: 256    Submit: 1.3kTime Limit: 1000 mSec    Memory Limit : 128MB Problem ...

  8. tyvj1113 魔族密码

    描述     风之子刚走进他的考场,就……    花花:当当当当~~偶是魅力女皇——花花!!^^(华丽出场,礼炮,鲜花)    风之子:我呕……(杀死人的眼神)快说题目!否则……-_-###    花 ...

  9. NLPP-03-Exercises

    <PYTHON自然语言处理>第3章 处理原始文本 更多更复杂有关处理HTML内容 http://www.crummy.com/software/BeautifulSoup/ 3.11 深入 ...

随机推荐

  1. c语言学习笔记.数组.

    数组: 可以存储一个固定大小的相同类型元素的顺序集合,比如int类型的数组.float类型的数组,里面存放的数据称为“元素”. 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址 ...

  2. Problem D. Berland Railroads Gym - 101967D (思维)

    题目链接:https://cn.vjudge.net/contest/274029#problem/D 题目大意:给你0-9每个数的个数,然后让你找出最大的数,满足的条件是任意三位相连的都能被三整除. ...

  3. 图片轮播器——jquery插件

    下载:http://files.cnblogs.com/files/wordblog/jiaoben828.rar

  4. Coursera在线学习---第二节.Octave学习

    1)两个矩阵相乘 A*B 2)两个矩阵元素位相乘(A.B矩阵中对应位置的元素相乘) A.*B 3)矩阵A的元素进行平方 A.^2 4)向量或矩阵中的元素求倒数 1./V    或   1./A 5) ...

  5. Balanced and stabilized quicksort method

    The improved Quicksort method of the present invention utilizes two pointers initialized at opposite ...

  6. git-定制属于你的log格式

    软件版本:    操作系统:ubuntu10.04     内核版本:Linux version 2.6.32-36-generic     git 版本:git version 1.7.0.4 1. ...

  7. 【并行计算】用MPI进行分布式内存编程(二)

    通过上一篇中,知道了基本的MPI编写并行程序,最后的例子中,让使用0号进程做全局的求和的所有工作,而其他的进程却都不工作,这种方式也许是某种特定情况下的方案,但明显不是最好的方案.举个例子,如果我们让 ...

  8. acm专题---dfs+bfs

    题目来源:http://hihocoder.com/problemset/problem/1049 #1049 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描 ...

  9. Java中Enum的使用

    http://www.cnblogs.com/happyPawpaw/archive/2013/04/09/3009553.html Enum有一个好处,可以使用EnumMap和EnumSet,而En ...

  10. Linux打补丁的一个简单例子

        前言 在做开发的过程中难免需要给内核及下载的一些源码打补丁或者说是升级,所以我们学习在Linux下使用diff制作补丁以及如何使用patch打补丁显得尤为重要. diff与patch命令介绍 ...