题目见洛谷,这道题目真有意思
给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有孔嘚圆盘共有n个不同的尺寸,每个尺寸都有两个相同的圆盘注意这两个圆盘是不加区分的。现要将这些圆盘移到C柱上在移动过程中可放在B柱上暂存。要求:
(1)每次只能移动一个圆盘;
(2) A、B、C三根细柱上的圆盘都要保持上小下大的顺序;
任务:设An为2n个圆盘完成上述任务所需的最少迻动次数对于输入的n,输出An
题目见洛谷,这道题目真有意思
给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有孔嘚圆盘共有n个不同的尺寸,每个尺寸都有两个相同的圆盘注意这两个圆盘是不加区分的。现要将这些圆盘移到C柱上在移动过程中可放在B柱上暂存。要求:
(1)每次只能移动一个圆盘;
(2) A、B、C三根细柱上的圆盘都要保持上小下大的顺序;
任务:设An为2n个圆盘完成上述任务所需的最少迻动次数对于输入的n,输出An
KMP算法最难理解的就是它的next数组的求法个人理解就是当模式串(pattern string)某个位置和主串不匹配时,将模式串的当前的位置从前缀位置转移到对应的后缀位置
0 | ||
---|---|---|
0 | 0 | |
0 | 0 | 0 |
未优化的版本next数組的获取方法是,该位置前面(不包括该元素)最长的相同前后缀(前后缀不能是同一位置)的长度
可以结合上表对比看下图优化版本
提供一些视频方便大家理解:、。
发布了87 篇原创文章 · 获赞 7 · 访问量 2万+
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。