实在是调不好了!!
查看原帖
实在是调不好了!!
575655
Chtholly_is_cute楼主2023/12/19 20:58

code:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod=1e9+7,maxn=1.003e6;
int t,l,r,a[maxn],f[222][222];
int num;
int dfs(int x,int sum,bool top){
    if(!x)return sum;
    if(!top&&f[x][sum]>=0)return f[x][sum];
    int bound=top?a[x]:9;
    int ret=0;
    for(int i=0;i<=bound;i++){
        ret+=(ret+dfs(x-1,sum+i,top&&i==bound))%mod;
    }
    if(!top)f[x][sum]=ret;
    return ret;
}
int solve(int x){
    int ss=0;
    while(x){
        a[++ss]=x%10;
        x/=10;
    }
    return dfs(ss,0,1)%mod;
}
signed main(){
    cin>>t;
    memset(f,-1,sizeof(f));
    while(t--){
        cin>>l>>r;
        cout<<(solve(r)-solve(l-1)+mod)%mod<<'\n';
    }
}
2023/12/19 20:58
加载中...