设计好dp状态的含义,那么问题就很好解决了 dp[pos][sta]表示在数位pos上 之前所有数位满足的sta( 1 表示前面有一个"0" 2表示前面有"00" 3表示前面有"007" 当然是在没有前导0 且 当前pos位能取到最高位9的情况下)的方案数。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; typedef long long ll; int b[4]={0,0,7,-1}; int a[20];//记录数位 ll dp[20][4]...