题目大意:求[a,b]间全部的整数中0~9每一个数字出现了几次

令f[i]为i位数(算前导零)中每一个数出现的次数(一定是同样的,所以仅仅记录一个即可了)

有f[i]=f[i-1]*10+10^(i-1)

然后照例十进制拆分

当中计算[0,999...9]的时候要从1~9枚举最高位,然后其余位调用f[i-1]就可以

剩余部分已知位直接乘,未知位调用f[i]

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll ans[10],f[20];
inline void Resolve(ll x,ll pos)
{while(x)ans[x%10]+=pos,x/=10;
}
void Digital_DP(ll x,int flag)
{int i,j;ll 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){ll 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()
{int i;ll a,b,pos;f[1]=1;for(i=2,pos=10;i<=12;i++,pos*=10)f[i]=f[i-1]*10+pos;cin>>a>>b;Digital_DP(b+1,1);Digital_DP(a,-1);for(i=0;i<=9;i++)printf("%lld%c",ans[i],i==9?'\n':' ');
}

BZOJ 1833 ZJOI2010 count 数字计数 数位DP相关推荐

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

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

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

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

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

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

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

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

  5. 【ZJOI2010】数字计数 数位dp

    比较直接的数位dp,但不是很好写 注: 1.每一位作为最高位的时候要统计 2.每一位一个周期的个数要统计 3.每一位作为不确定的最高位的个数要统计 4.统计分两部分:当前位和以后位 码: #inclu ...

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

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

  7. bzoj1833: [ZJOI2010]count 数字计数USACO37 Cow Queueing 数数的梦(数位DP)

    难受啊,怎么又遇到我不会的题了(捂脸) 如题,这是一道数位DP,随便找了个博客居然就是我们大YZ的--果然nb,然后就是改改模版++注释就好的了,直接看注释吧,就是用1~B - 1~A-1而已,枚举全 ...

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

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

  9. bzoj1833: [ZJOI2010]count 数字计数 codevs1359 数字计数

    bzoj1833 codevs1359 这道题也是道数位dp 因为0有前导0这一说卡了很久 最后发现用所有位数减1~9的位数就okay.....orzczl大爷 其他就跟51nod那道统计1出现次数一 ...

最新文章

  1. samba srver on centos-7
  2. java 反射 注解 运用_Java注解与反射的使用
  3. ERROR 1044 (42000)报错的解决
  4. python在哪里写代码比较适合-程序员面试被要求手写代码,你与顶级程序员的差别在哪?...
  5. Vim 高亮显示单词并查找
  6. 『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!
  7. Java JTable3
  8. (王道408考研操作系统)第三章内存管理-第一节2:内存管理的基本概念
  9. SQL数据库语言基础之SqlServer表数据的插入、更新与删除
  10. 编程真可怕,我们日常都在写 Bug
  11. 2.4.5 数据框(data frame)的建立
  12. jQuery学习笔记01
  13. Spring Boot 2.x 集成 SLF4j + log4j2 日志框架
  14. 博客搬家工具c/s实现方式
  15. C# vb .net实现相机视图效果滤镜
  16. 如何修改host文件
  17. Elasticsearch:从搜索中获取选定的字段 fields
  18. 单元测试利器——手把手教你使用Mockito
  19. 架构设计-支付宝、京东、美团、去哪儿的支付系统架构整体设计详解!!!
  20. LeetCode - 70. 爬楼梯(人肉递归、动态规划)2

热门文章

  1. MATLAB实现偏最小二乘回归PLS
  2. linux anaconda环境变量配置
  3. Grafana中整个Dashboard报错问题解决
  4. git merge 和 git rebase详解
  5. 多模块打包后,扫描不到@controller和@service,实现 ADD DIRECTORY ENTRIES
  6. Jenkins怎么启动和停止服务
  7. 【effective c++读书笔记】【第7章】模板和泛型编程(3)
  8. shaderlab学习一
  9. 检查数据库的CPU和PSU补丁信息
  10. LaTeX入门最终集 :LaTeX格式的调整LaTeX中怎么打出数学公式LaTeX的各种上下标