1)确定状态:
最后一步:无论机器人用什么方式到达右下角,最后的一步肯定是向右或者向下,即右下角坐标为( m − 1 , n − 1 ) (m-1,n-1)(m−1,n−1)时,机器人前一步一定是在( m − 2 , n − 1 ) (m-2,n-1)(m−2,n−1)或( m − 1 , n − 2 ) (m-1,n-2)(m−1,n−2)。
子问题:如下面所说。
2)状态转移方程
本题在dp入门中有讲,确定状态转移方程,如:若只有2元、5元、7元,现要拼成x元,状态转移方程就是f ( x ) = m i n ( f ( x − 2 ) , f ( x − 5 ) , f ( x − 7 ) ) + 1 f(x)=min ( f(x-2),f(x-5),f(x-7) )+1f(x)=min(f(x−2),f(x−5),f(x−7))+1,而本题是任何整数额的
(1)开一个vector数组fac存0^ p ,1^ p… i ^ p.
(2)DFS:
分叉口:利用DFS对fac[index]进行选择,有“选”与“不选”两种选择,如果不选,则把问题转化为对fac[index]进行选择;如果选择,由于每个数字可以重复选择即下一次还能选择fac[index]。
递归边界:2个return,第一个满足sum == N且nowK==