CF 1513 C. Add One

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[10][200060],mod=1e9+7;
void solve(){
    
    
    int n,m;
    scanf("%d %d",&n,&m);
    ll sum=0;
    while(n)
    {
    
    
        sum+=dp[n%10][m];
        sum%=mod;
        n/=10;
    }
    printf("%lld\n",sum);
}
void pre()
{
    
    
    for(int j=0;j<=200000;j++)
    {
    
    
        for(int i=0;i<10;i++)
        {
    
    
            if(i+j<10)dp[i][j]=1;
            else dp[i][j]=(dp[1][j-(10-i)]+dp[0][j-(10-i)])%mod;
        }
    }
}
int main()
{
    
    
    pre();
    int T;
    scanf("%d",&T);
    while(T--)solve();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/Ambrumf/article/details/120975677