斐波那契词


11

我在旧的捷克算法教科书中遇到以下问题,可惜没有任何提示或解决方案。

“我们定义斐波那契字作为˚F 1 = b˚F ñ + 2 = ˚F ñ ˚F ñ + 1,其中一个b是一般的信件。如何给定的字符串(超过一个潜在的大字母)可以吗找到线性时间最长的斐波那契子词?”F0=aF1=bFn+2=FnFn+1ab

我知道二次方的解,但不能将其简化为线性。谁能指出我正确的方向?


3
这本古老的捷克算法教科书的名称是什么;-)
Saeed

本书中子词是否必须是连续的(即因子)?
克劳斯·德拉格2015年

Answers:


12

F(i,j)ijF(i2,j)F(i1,j+fib(i))O(nlogn)i

O(n/fib(i))F(i2,j)F(i2,j)F(i,j)O(n)ii2i

FO(nlogn)FO(n) logn


您能告诉我,为什么您认为动态编程将是解决此问题的最佳选择?如果使用诸如C的任何静态编程,我们将在哪里遇到问题?
tarit goswami,

1
动态编程是一种算法设计技术,而不是一类编程语言。
David Eppstein '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.