写一个记忆化 fib

补全 fib_memo:memo 里 -1 表示还没算。进函数先查 memo,算完先写 memo。把 fib(12) 的值和调用次数拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

只查不写等于没加

两个版本各算一次 fib(12),只输出两个调用次数:fib_bad 有查表那一句,但算完忘了写 memo;fib_cnt 是完全不加记忆化的朴素版。两个数用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

省了多少且结果必须一样

朴素版和记忆化版各算一次 fib(12),输出三样:朴素的调用次数 / 记忆化的调用次数 / 两者结果是否相同(相同输出 结果一致,否则 结果不一致)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

填表法和记忆化差在哪

第 1 步:先填好最小的两格 第 2 步:第 2 格 = 前两格相加 第 3 步:第 3 格 = 前两格相加 第 4 步:第 4 格 = 前两格相加 第 5 步:第 5 格 = 前两格相加 第 6 步:第 6 格 = 前两格相加 第 7 步

开始练习 →

填表的顺序怎么定(C++)

决定 dp 表填写顺序的原则是【0】。

开始练习 →

填表法比记忆化好在哪(C++)

自底向上填表相比记忆化搜索的好处是【0】。

开始练习 →

填表版算出来是多少

用自底向上填表算 fib(12)。 运行下面这段程序: #include <algorithm> #include <iostream> #include <string> #include <ve

开始练习 →

爬楼梯的表前几项

爬楼梯的 dp 表,dp[0] 表示「站着不动」也算一种走法。运行下面这段程序,看前六项: #include <algorithm> #include <iostream> #include <string&g

开始练习 →

写一个填表版 fib

补全 fib_tab:开一个长度 n+1 的表,从小往大填,最后返回 dp[n]。输出 fib(12)。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

写一个填表版爬楼梯

补全 climb:返回整张 dp 表。输出爬到第 10 级的走法数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →