0pts 求助大佬!!!(悬关)
查看原帖
0pts 求助大佬!!!(悬关)
769220
wkzh楼主2024/10/4 16:51
#include<bits/stdc++.h>
using namespace std;
long long a,b;
long long len;
long long f[20][20][2][2];
long long x[20];
long long dfs(long long loc,long long is0,long long sum,long long same,long long d){
	if(loc==len+1)
		return sum;
	if(f[loc][sum][is0][same]!=-1) 
		return f[loc][sum][is0][same];
	long long ul=9;
	if(same==1)
		ul=x[loc];
	f[loc][sum][is0][same]=0;
	for(long long i=0;i<=ul;i++)
		f[loc][sum][is0][same]+=dfs(loc+1,is0&&(i==0),sum+((!is0||i)&&(i==d)),same&&(i==x[loc]),d);
	return f[loc][sum][is0][same];
}
long long solve(long long t,long long d){
	len=0;
	memset(f,-1,sizeof(f));
	while(t){
		x[++len]=t%10;
		t/=10;
	}
	return dfs(1,1,0,1,d);
}
int main(){
	cin>>a>>b;
	for(long long i=0;i<=9;i++)
		cout<<solve(b,i)-solve(a-1,i)<<(i==9?'\0':' ');
	return 0;
}
2024/10/4 16:51
加载中...