求助
查看原帖
求助
791514
morgan2022楼主2024/11/11 23:45

只有30分

#include<bits/stdc++.h>
#define int long long
using namespace std;
int dp[1000],a[1000],b[1000],op[100];
int n,m,n1,m1;
signed main(){
	cin>>n>>m;
    n--;
    n1=n;m1=m;
    int w=0,p=1;
    while(n){
        a[w]=n%10;
        n/=10;
        w++;
        p*=10;
    }p/=10;
    int w1=0,ans[100]={0},p1=1;
    while(m){
        b[w1]=m%10;
        m/=10;
        w1++;
        p1*=10;
    }p1/=10;
    int o=1;
    op[0]=0;
    for(int i=1;i<=20;i++){
        op[i]=i*o;
        o*=10;
    }
	for(int i=w-1;i>=0;i--){
    if(i>w-1)break;
        if(a[i]==0){p/=10;continue;}
        ans[0]-=a[i]*op[i];
        for(int j=1;j<=9;j++){
            ans[j]-=a[i]*op[i];
            if(j<a[i]){
                ans[j]-=p;
            }
        }ans[a[i]]-=n1%p+1;
        p/=10;
    }
	for(int i=w1-1;i>=0;i--){
        if(i>w1-1)break;
        if(b[i]==0){p1/=10;continue;}
        ans[0]+=b[i]*op[i];
        for(int j=1;j<=9;j++){
            ans[j]+=b[i]*op[i];
            if(j<b[i]){
                ans[j]+=p1;
            }
        }ans[b[i]]+=m1%p1+1;
        p1/=10;
    }
    cout<<ans[0];
    for(int i=1;i<=9;i++)cout<<" "<<ans[i];
	return 0;
}
2024/11/11 23:45
加载中...