?
给出一个字符,只含'/','-' ,'' ,表示着一个数上的各位数字按相应字符上升,不变或下降,问【a,b】区间内这样的数有多少个?
?
数组很好设,dp[i][j][k]表示处理到第i位,它对应的字符是第j位,它前面的数字是k的种类数。
令我纠结好久的是,我起初设的dp[i][j][k]表示处理到第i位时,它的上一位对应的字符是第j位,它的上一位数字是k的种类数,这样可能会导致一个'/'只有一个数字,但是题目要求是'/'’-‘''必须是至少两个相邻的数字满足。
如果把j理解为当前第i位应该对应的是第j个字符,那么只需拿当前取的数字num和k相比是否满足s[j]这种关系,若满足,就继续递归下一个字符,若不满足,就拿num和k相比是否满足s[j-1]关系,如果满足,就继续递归s[j]这种关系。
从这题可以得出结论,设置状态的时候,要针对当前这一位,尽量让当前这一位的选择是确定的。
?
?
#include
#include
#include
?
?