很久以前做过的一道数位DP,现在用一种新的解决数位DP的比较一般的方法. 数位DP裸题是:求[L,R]有多少个数. 先转化成求[0,R]有多少个数,然后区间相减即可. 对于[0,R]中的所有数,用0补齐前面的空位,使得每个数的长度都为R的长度. 状态: dp[pos][0]表示从最高位到pos位,没有顶上界的数的个数 dp[pos][1]表示从最高位到pos位,顶到上界的数的个数(好吧,这个问题中,它一定为1) 然后考虑转移, dp[pos][0]->dp[pos-1][0](通过枚举pos-1…