dp[pos][n]表示值<=n的 长度为pos位的数的个数
#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f using namespace std; int dp[20][200000],num[20]; int f(int n) { int tmp,cnt; cnt=0;tmp=0; while(n) { tmp+=(n%10)*(1< =0; if(!flag&&dp[pos][n]!=-1) return dp[pos][n]; int ans,p,i; if(flag) p=num[pos]; else p=9; ans=0; for(i=0;i<=p;i++) ans+=dfs(n-i*(1<