斐波那契词


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(i−2,j)F(i−1,j+fib⁡(i))O(nlog⁡n)i。

O(n/fib⁡(i))F(i−2,j)F(i−2,j)F(i,j)O(n)ii−2i

FO(nlog⁡n)FO(n) log⁡n


您能告诉我,为什么您认为动态编程将是解决此问题的最佳选择?如果使用诸如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.