0 分求 Hack
查看原帖
0 分求 Hack
536439
YONIC楼主2022/8/12 18:30
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b,f[15][10],e[15];
void init(){
    e[0]=1;
    for(int i=1;i<=14;++i) e[i]=10*e[i-1];
    for(int i=0;i<=9;++i) f[1][i]=1;
    for(int i=2;i<=14;++i){
        for(int j=0;j<=9;++j) f[i][j]=i*e[i-1];
        for(int j=0;j<=i-1;++j) f[i][0]-=e[j];
    }
}
int func(int x,int k){
    if(!x) return 0;
    int t[15]={},tmp=x,tot=-1,ans=0;
    while(tmp){
        t[++tot]=tmp%10;
        tmp/=10;
    }
    for(int i=tot;~i;--i){
        ans+=f[i][k]*t[i];
        if(t[i]==k) ans+=x%e[i]+1;
        else if(t[i]>k) ans+=e[i];
    }
    if(!k) for(int i=tot;~i;--i) ans-=e[i];
    return ans;
}
signed main(){
    init();
    cin>>a>>b;
    for(int i=0;i<=9;++i) cout<<func(b,i)-func(a-1,i)<<' ';
    return 0;
}
2022/8/12 18:30
加载中...