Description

给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。

Input

输入文件中仅包含一行两个整数a、b,含义如上所述。

Output

输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。

Sample Input

1 99

Sample Output

9 20 20 20 20 20 20 20 20 20

HINT

30%的数据中,a<=b<=10^6;
100%的数据中,a<=b<=10^12。

/*令f[i]为i位数(算前导零)中每个数出现的次数(一定是相同的,所以只记录一个就行了)有f[i]=f[i-1]*10+10^(i-1)
*/
#include<cstdio>
#include<iostream>
#define lon long long
using namespace std;
lon ans[20],f[20];
void resolve(lon x,lon pos){while(x) ans[x%10]+=pos,x/=10;
}
void DP(lon x,lon flag){int i,j;lon pos,now;for(i=1,pos=10;pos<x;i++,pos*=10){//“整数”部分 for(j=0;j<=9;j++)ans[j]+=f[i-1]*9*flag;for(j=1;j<=9;j++)ans[j]+=pos/10*flag;}now=pos/=10;i--;while(now<x){//“小数”部分 while(now+pos<=x) {lon temp=now/pos;resolve(temp,pos*flag);for(j=0;j<=9;j++)ans[j]+=f[i]*flag;now+=pos;}pos/=10;i--;}}
int main(){lon a,b,pos;int i;f[1]=1;for(i=2,pos=10;i<=12;i++,pos*=10)f[i]=f[i-1]*10+pos;cin>>a>>b;DP(b+1,1);DP(a,-1);//差分一下 for(int i=0;i<=9;i++)  printf("%lld%c",ans[i],i==9?'\n':' ');return 0;
}

转载于:https://www.cnblogs.com/harden/p/6286184.html

count 数字计数(bzoj 1833)相关推荐

  1. 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2774  Solved: 1230 [Submit ...

  2. bzoj 1833: [ZJOI2010]count 数字计数(数字0-9的个数)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 3528  Solved: 1553 [Submit ...

  3. 1833: [ZJOI2010]count 数字计数

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 2951  Solved: 1307 [Submit ...

  4. bzoj1833: [ZJOI2010]count 数字计数(数位DP+记忆化搜索)

    1833: [ZJOI2010]count 数字计数 题目:传送门 题解: 今天是躲不开各种恶心DP了??? %爆靖大佬啊!!! 据说是数位DP裸题...emmm学吧学吧 感觉记忆化搜索特别强: 定义 ...

  5. BZOJ 1833 ZJOI2010 count 数字计数 数位DP

    题目大意:求[a,b]间全部的整数中0~9每一个数字出现了几次 令f[i]为i位数(算前导零)中每一个数出现的次数(一定是同样的,所以仅仅记录一个即可了) 有f[i]=f[i-1]*10+10^(i- ...

  6. BZOJ 1833: [ZJOI2010]count 数字计数

    1833 思路:数位dp 代码: #include<bits/stdc++.h> using namespace std; #define fi first #define se seco ...

  7. [ZJOI 2010]count 数字计数

    Description 题库链接 问你 \([l,r]\) 区间内所有整数中各个数码出现了多少次. \(1\leq a\leq b\leq 10^{12}\) Solution 数位 \(DP\) . ...

  8. count 数字计数

    https://www.lydsy.com/JudgeOnline/problem.php?id=1833 题解:数位DP /* *@Author: STZG *@Language: C++ */ # ...

  9. [BZOJ1833][ZJOI2010]Count数字计数(DP)

    数位DP学傻了,怎么写最后都写不下去了. 这题严格上来说应该不属于数位DP?只是普通DP加上一些统计上的判断吧. 首先复杂度只与数的位数$\omega$有关,所以怎么挥霍都不会超. f[i][j][k ...

最新文章

  1. 用@Data注解的形式替代类中的setter、getter方法
  2. Linux脚本自动安装软件,一个快速自动安装Apache及其相关软件的Shell脚本
  3. Dynamics CRM Publisher
  4. 计算机专业好的211大学6,计算机专业好的985大学有哪些?附985211计算机大学名单排名...
  5. 队列的其本应用_迷官问题
  6. Unity AI副总裁Danny Lange:如何用AI助推游戏行业?
  7. idea 鼠标变量_IntelliJ IDEA鼠标悬停方法显示Java Doc
  8. Java OCR tesseract 图像智能字符识别技术
  9. Javascript - ES6新语法概览
  10. Hive分析函数--row_number 的用法
  11. Exchange2010升级到2016——配置Exchange2016连接器、外部DNS设置
  12. 全文搜索工具 AnyTXT Searcher(转载)
  13. c语言程序设计第五版李丽娟_c语言程序设计第五版习题答案解析
  14. 摩尔定律终结后 科技也许会向这3个方向前进
  15. 【转载】阿里数据技术大图详解
  16. 云和恩墨大讲堂西安站成功举办,携手合作伙伴引领企业数字化转型
  17. 38.DevOps之基于Jenkins实现的CI与CD
  18. DbVisualizer 10破解之后,在输入框使用光标无法准确定位字符
  19. 【OSPF-一类router、二类network】(根据lsdb画出拓扑)
  20. 坚果云显示连接服务器失败怎么办,坚果云提示同步过程中遇到错误,怎么解决?...

热门文章

  1. emWin 2天速成实例教程002_多个页面窗口切换
  2. Linux学习之CentOS(五)--让我有些郁闷的mount命令
  3. js: live和die,bind和unbind
  4. Oracle 存储过程的导出导入序列的导出
  5. R中rep函数的使用
  6. Linux Shell常用技巧(九)
  7. android 设置PopupWindow的显示大小
  8. 【+】Linux Socket编程
  9. shell编程系列26--大型脚本工具开发实战
  10. android WebView的简单使用