开O2就RE
查看原帖
开O2就RE
408086
StrangeSolver楼主2024/6/1 08:47

不开O2优化AC,开了却变RE 开了O2 不开O2

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a,b;
const ll N=15;
ll dp[N],ten[N],cnta[N],cntb[N],num[N];
//ten[i] 10^i,num[i]->x,i
void init(){
	ten[0]=1;
	for(ll i=1;i<=N;i++){
		dp[i]=i*ten[i-1];
		ten[i]=ten[i-1]*10;
	}
}
void solve(ll x,ll *cnt){
	ll len=0;
	while(x){//ws
		num[++len]=x%10;
		x/=10;
	}
	for(ll i=len;i>=1;i--){
		for(ll j=0;j<=9;j++) cnt[j]+=dp[i-1]*num[i];
		for(ll j=0;j<num[i];j++) {
			//cout<<j<<endl;
			cnt[j]+=ten[i-1];
		}
		ll num2=0;
		for(ll j=i-1;j>=1;j--){
			num2=num2*10+num[j];
		}
		cnt[num[i]]+=num2+1;
		cnt[0]-=ten[i-1];
	}
}
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>a>>b;
	init();
	solve(a-1,cnta);
	solve(b,cntb);
	for(ll i=0;i<=9;i++){
		cout<<cntb[i]-cnta[i]<<" ";
	}
	return 0;
}
2024/6/1 08:47
加载中...