感觉应该是mod的问题,95分求调
#include<bits/stdc++.h>
#define ll long long
#define mod 1000000007
using namespace std;
ll T,a,b,upper[25],dp[25][25];
ll dfs(ll v,ll sum,ll x,bool flag,bool lead)
{
ll ans=0,up=flag?upper[x]:9;
if (x==0) return sum%mod;
if (dp[x][sum]!=-1&&!flag&&!lead) return dp[x][sum]%mod;
for (ll i=0;i<=up;i++) ans=(ans+dfs(v,(i==v&&i!=0)||(i==v&&i==0&&!lead)?sum+1:sum,x-1,flag&&i==upper[x],lead&&i==0)+mod)%mod;
if (!flag&&!lead) dp[x][sum]=ans%mod;
return ans%mod;
}
ll solve(ll v,ll u)
{
ll cnt=1;
while (u)
{
upper[cnt++]=u%10;
u/=10;
}
for (ll i=0;i<=24;i++) for (ll j=0;j<=24;j++) dp[i][j]=-1;
return dfs(v,0,cnt-1,1,1)%mod;
}
int main()
{
scanf("%lld",&T);
while (T--)
{
ll ans=0;
scanf("%lld%lld",&a,&b);
for (ll i=1;i<=9;i++) ans=(ans+(solve(i,b)%mod-solve(i,a-1)%mod)%mod*i+mod)%mod;
printf("%lld\n",ans);
}
}