输入样例:
5
输出样例:
7
思路(朴素版)
状 态 表 示 : f ( i , j ) , 表 示 从 1 i 中 选 刚 好 可 以 拼 成 j 的 所 有 方 法 状态表示:f(i,j),表示从1~i中选刚好可以拼成j的所有方法 状态表示:f(i,j),表示从1 i中选刚好可以拼成j的所有方法
属 性 : 数 量 属性:数量 属性:数量
核 心 : 最 后 一 个 数 i 不 取 或 者 取 k 个 正 好 拼 成 j 核心:最后一个数i不取或者取k个正好拼成j 核心:最后一个数i不取或者取k个正好拼成j
状 态 划 分 : f ( i − 1 , j ) 取 0 个 i , 1 个 i … … , k 个 i 变 为 f ( i , j ) 状态划分:f(i-1,j)取0个i,1个i……,k个i变为f(i,j) 状态划分:f(i−1,j)取0个i,1个i……,k个i变为f(i,j)
由状态划分可得到状态转移方程:
f ( i , j ) = f ( i − 1 , j ) + f ( i − 1 , j − i ) + f ( i − 1 , j − 2 i ) + … … + f ( i − 1 , j − k i ) f(i,j) = f(i-1,j)+f(i-1,j-i)+f(i-1,j-2i)+……+f(i-1,j-ki) f(i,j)=f(i−1,j)+f(i−1,j−i)+f(i−1,j−2i)+……+f(i−1,j−ki)
f ( i , j − i ) = f ( i − 1 , j − i ) + f ( i − 1 , j − 2 i ) + … … + f ( i − 1 , j − k i ) f(i,j-i) = ~~~~~~~~~~~~~~~f(i-1,j-i)+f(i-1,j-2i)+……+f(i-1,j-ki) f(i,j−i)= f(i−1,j−i)+f(i−1,j−2i)+……+f(i−1,j−ki)
相减得最终的状态转移方程:
f ( i , j ) = f ( i − 1 , j )