简单动态规划
  • 骨牌问题

给定 2 × N 2\times N 2×N棋盘,用 N N N 2 × 1 2\times 1 2×1的骨牌排满棋盘,可横着或者竖着放,求可行方案数。

  • 上楼梯问题

给定 N N N层台阶,从第一层开始,每次可以上一层,或者两层,求上楼梯的可行方案数。

第一个问题:考虑最后一列怎么填,显然只有两种填法,一种是竖着填一个,一种是横着填两个。

分别可以得到状态转移方程: f ( i ) = f ( i − 1 ) + f ( i − 2 ) f(i)=f(i-1)+f(i-2) f(i)=f(i1)+f(i2)

可以得到该问题对应的数列是 F i b o n a c c i Fibonacci Fibonacci数列。

第二个问题:同理假设到达了第 i i i层台阶,考虑能转移的状态,显然只有两种。

f ( i ) = f ( i − 1 ) + f ( i − 2 ) f(i)=f(i-1)+f(i-2) f(i)=f(i1)+f(i2)

也是 F i b o n a c c i Fibonacci Fibonacci数列。