3 条题解

  • 1
    @ 2025-8-6 16:07:06

    :::align{center} 小学奥数です
    :::

    #pragma GCC optimize(2)
    #include<bits/stdc++.h>
    #define ll long long
    #define f(a,b) for(int i=a;i<=b;i++)
    #define fj(a,b) for(int j=a;j<=b;j++)
    #define fp(a,b) for(int p=a;p<=b;p++)
    #define fq(a,b) for(int q=a;q<=b;q++)
    #define debug cout<<"debug"<<endl
    #define end cout<<endl
    #define out(a) cout<<(a)
    #define cmax(a,b) a=max(a,b)
    #define time_test fprintf(stderr,"Time:%.6lf\n",(double)clock()/CLOCKS_PER_SEC)
    using namespace std;
    ll a,b;
    ll s(ll n,ll x){
    	ll cnt=0;
    	for(ll i=1;n/i;i*=10)cnt+=n/i/10*i-(x==0?i:0),cnt+=(x<n%(i*10)/i?i:(x==n%(i*10)/i)*(n%i+1));
    	return cnt;
    }
    int main(){
    	cin>>a>>b;
    	f(0,9)printf("%lld ",s(b,i)-s(a-1,i));
    }
    
    
    • 1
      @ 2025-7-8 16:49:18

      数位dp

      #include <bits/stdc++.h>
      using namespace std;
      const int N=1e5+5;
      long long a,b,numa[10],numb[10],pow10[N],dp[N];
      void init(){
      	pow10[0]=1;
      	for(int i=1;i<=12;i++){
      		dp[i]=dp[i-1]*10+pow10[i-1];
      		pow10[i]=pow10[i-1]*10;
      	}
      }void solve(long long n,long long *ans){
      	int len=0,tmp[15];
      	while(n){
      		tmp[++len]=n%10;
      		n/=10;
      	}for(int i=len;i>=1;i--){
      		for(int j=0;j<=9;j++){
      			ans[j]+=dp[i-1]*tmp[i];
      		}for(int j=0;j<tmp[i];j++){
      			ans[j]+=pow10[i-1];
      		}long long t=0;
      		for(int j=i-1;j>=1;j--){
      			t=t*10+tmp[j];
      		}ans[tmp[i]]+=t+1;
      		ans[0]-=pow10[i-1];
      	}
      }
      int main(){
      	cin>>a>>b;
      	init();
      	solve(a-1,numa);
      	solve(b,numb);
      	for(int i=0;i<=9;i++){
      		cout<<numb[i]-numa[i]<<" "; 
      	}
      }
      
      
      • 0
        @ 2021-10-29 19:52:07

        a = int(input())

        while (a != 1):

        if (a % 2 != 0):
        
            l = (a * 3 + 1)
        
            print("{:.0f}*3+1={:.0f}".format(a, l))
        
            a = l
        
        else:
        
            k = (a / 2)
        
            print("{:.0f}/2={:.0f}".format(a, k))
        
            a = k
        

        print("End")

        • 1

        信息

        ID
        485
        时间
        1000ms
        内存
        512MiB
        难度
        9
        标签
        递交数
        54
        已通过
        3
        上传者