rt,不知道我这用的什么算法 P2602
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n[10];
int apow(int a,int b){
int res=1;
while(b--)res*=a;
return res;
}
signed main(){
int a,b;
scanf("%lld %lld",&a,&b);
bool f1=false;
for(int i=1;i<=13;i++)if(apow(10,i)==b)f1=true;
int p=(int)ceil(log10(b));
if(f1)p++;
for(int t=1;t<=p;t++){
int w=apow(10,t-1);
int a1=a/w,b1=b/w;
int a2=a1+1,b2=b1-1;
if(b2>=a2){
int s1=(b2-a2+1)/10;
for(int i=0;i<=9;i++)n[i]+=s1*w;
for(int i=s1*10+a2;i<=b2;i++)n[i%10]+=w;
}
if(a1!=b1){
n[a1%10]+=a2*w-max(a,w);
n[b1%10]+=b-b1*w+1;
}
else n[a1%10]+=b-a+1;
}
for(int i=0;i<=9;i++)printf("%lld ",n[i]);
return 0;
}