我这是用的什么算法
查看原帖
我这是用的什么算法
1032232
_Tb_楼主2024/7/20 14:28

Rt,自己和机房的都不知道我这是什么神仙算法

#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;
}
2024/7/20 14:28
加载中...