30pts求条 玄关
查看原帖
30pts求条 玄关
788434
封禁用户楼主2024/3/17 12:06

rt,我哪错了???

#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
ll l,r,x,a[20],dp[20];
ll f(ll num){
	int len=0,numm=num,res=0;
	while(num){
		a[++len]=num%10;
		num/=10;
	}
	ll p=1;
	memset(dp,0,sizeof(dp));
	for(int i=1;i<=len;i++){
		for(int j=0;j<a[i];j++){
			if(j==x)dp[i]+=p;
			dp[i]+=p/10*(i-1);
		}
		dp[i]+=dp[i-1];
		if(a[i]==x)dp[i]+=numm%p+1;
		if(x==0)res+=p;
		p*=10;
	}
	return dp[len]-res;
} 
int main(){
	cin>>l>>r;
	ll ans=0;
	for(x=0;x<=9;x++)cout<<f(r)-f(l-1)<<" ";
}
2024/3/17 12:06
加载中...