zoukankan      html  css  js  c++  java
  • bzoj1833数字计数

    题目链接

    找$[1$ ~ $a-1]$和$[1$ ~ $b]$中各数码出现的次数之后相减就是答案

    上代码:

    /**************************************************************
        Problem: 1833
        User: zhangheran
        Language: C++
        Result: Accepted
        Time:0 ms
        Memory:1292 kb
    ****************************************************************/
     
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    long long a,b;
    long long f[17];
    long long dp[17];
    long long ansa[17];
    long long ansb[17];
    long long tot;
    long long qwq[17];
    long long qaq[17];
    int lena,lenb;
    int main()
    {
    //  freopen("1.in","r",stdin);
    //  freopen("1.out","w",stdout);
        scanf("%lld%lld",&a,&b);
        dp[0]=1;
        for(int i=1;i<=15;i++)
          f[i]=f[i-1]*10+dp[i-1],
          dp[i]=dp[i-1]*10;
        a--;
        while(a) qwq[++lena]=a%10,a/=10;
        while(b) qaq[++lenb]=b%10,b/=10;
         
        for(int i=lena;i>=1;i--){
          long long now=0;
          for(int j=0;j<=9;j++) ansa[j]+=qwq[i]*f[i-1];
          for(int j=0;j<qwq[i];j++) ansa[j]+=dp[i-1];
          for(int j=i-1;j>0;j--) now*=10,now+=qwq[j]; 
          ansa[qwq[i]]+=now+1;
          ansa[0]-=dp[i-1];
    //    printf("%lld %lld
    ",qwq[i],ansa[qwq[i]]);
        }
    //  puts("");
        for(int i=lenb;i>=1;i--){
    //      printf("%lld ",qaq[i]);
          long long now=0;
          for(int j=0;j<=9;j++) ansb[j]+=qaq[i]*f[i-1];
          for(int j=0;j<qaq[i];j++) ansb[j]+=dp[i-1];
          for(int j=i-1;j>0;j--) now*=10,now+=qaq[j]; 
          ansb[qaq[i]]+=now+1;
          ansb[0]-=dp[i-1];
    //    printf("%lld %lld
    ",qaq[i],ansb[qaq[i]]);
        }
    //  puts("");
        for(int i=0;i<=9;i++) printf("%lld ",ansb[i]-ansa[i]);
    }
    //655 1044
  • 相关阅读:
    491 · 回文数
    936 · 首字母大写
    1343 · 两字符串和
    1535 · 转换成小写字母
    13 · 字符串查找
    146 · 大小写转换 II
    241 · 转换字符串到整数(容易版)
    46 · 主元素
    kotlin协程——>通道
    kotlin协程——>异步流
  • 原文地址:https://www.cnblogs.com/arcturus/p/9374862.html
Copyright © 2011-2022 走看看