区间dp
for(.....)//枚举起点
for(.....)//枚举长度
//处理区间
或 dfs写法
dp方程随缘
状压dp *
看清维数,弄清楚转移方向啊
数位dp
typedef long long LL;
int a[20];
LL dp[20][state];
LL dfs(int pos,/*state变量*/,bool limit/*数位上界变量*/)
{
if(pos==-1) return 1;
if(!limit && dp[pos][state]!=-1) return dp[pos][state];
int up=limit?a[pos]:9;
LL ans=0;
for(int i=0;i<=up;i++)
{
if() ...
else if()...
ans+=dfs(pos-1,/*状态转移*/,limit && i==a[pos])
}
if(!limit ) dp[pos][state]=ans;
return ans;
}
LL solve(LL x)
{
int pos=0;
while(x)
{
a[pos++]=x%10;
x/=10;
}
return dfs(pos-1/*从最高位枚举*/, /*一系列状态 */ ,true);
}
int main()
{
LL le,ri;
memset(dp,-1,