Description

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

Input

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

Output

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

Sample Input

 

Sample Output

         

HINT

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

Solution

十进制数位dp

设f(i,j,k)表示第i位以j开头的数含有多少个数字k

先预处理出f[i][j][k]数组

转移的时候从高到低转移

#include<stdio.h>
#define LL unsigned long long
int len,zt[];
LL f[][][],bt[],a,b,ans[];
void init() {
bt[]=;
for(int i=; i<=; i++)
bt[i]=bt[i-]*;
for(int i=; i<; i++)
f[][i][i]=;
for(int i=; i<=; i++)
for(int j=; j<; j++)
for(int k=; k<; k++) {
for(int l=; l<; l++)
f[i][j][l]+=f[i-][k][l];
f[i][k][k]+=bt[i-]; } }
void solve(LL x,LL d) {
LL bef=x;
for(len=; x; x/=)
zt[++len]=x%;
for(int i=; i<len; i++)
for(int j=; j<; j++)
for(int k=; k<; k++)
ans[k]+=d*f[i][j][k];
for(int i=len; i; i--) {
for(int j=; j<zt[i]; j++) {
if(!j && i==len)continue;
for(int k=; k<; k++)
ans[k]+=d*f[i][j][k]; }
ans[zt[i]]+=d*(bef%bt[i]+); } }
int main() {
init();
scanf("%lld%lld",&a,&b);
solve(b,);
solve(a-,-);
for(int i=; i<; i++)
printf("%lld ",ans[i]);
printf("%lld\n",ans[]);
return ; }

[bzoj1833][ZJOI2010][count] (数位dp)的更多相关文章

  1. bzoj 1833: [ZJOI2010]count 数位dp

    题目: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 题解 设\(f[i][j]\)表示长度为\(i\)的所有合法数字中有多少数码\(j\) 设\(g[i ...

  2. BZOJ1833 ZJOI2010 count 数字计数 【数位DP】

    BZOJ1833 ZJOI2010 count 数字计数 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包 ...

  3. [BZOJ1833][ZJOI2010]count 数字计数

    [BZOJ1833][ZJOI2010]count 数字计数 试题描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入 输入文件中仅包含一行两个整数a ...

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

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

  5. bzoj1833: [ZJOI2010]count 数字计数 数位dp

    bzoj1833 Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a.b,含义如上所述. O ...

  6. [bzoj1833][ZJOI2010]count 数字计数——数位dp

    题目: (传送门)[http://www.lydsy.com/JudgeOnline/problem.php?id=1833] 题解: 第一次接触数位dp,真的是恶心. 首先翻阅了很多很多一维dp,因 ...

  7. 【数位dp】bzoj1833: [ZJOI2010]count 数字计数

    数位dp姿势一直很差啊:顺便庆祝一下1A Description 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. Input 输入文件中仅包含一行两个整数a ...

  8. BZOJ1833 [ZJOI2010]count 数字计数 【数学 Or 数位dp】

    题目 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入格式 输入文件中仅包含一行两个整数a.b,含义如上所述. 输出格式 输出文件中包含一行10个整数, ...

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

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

随机推荐

  1. Hadoop伪分布式模式搭建

    title: Hadoop伪分布式模式搭建 Quitters never win and winners never quit. 运行环境: Ubuntu18.10-server版镜像:ubuntu- ...

  2. spring cloud config搭建说明例子(四)-补充配置文件

    服务端 ConfigServer pom.xml <dependency> <groupId>org.springframework.cloud</groupId> ...

  3. MvcPager 分页控件

    官方教程: http://www.webdiyer.com/mvcpager

  4. 转 MySQL实验(三) 过程式数据库对象的使用

    转 http://blog.csdn.net/anne999/article/details/70432558

  5. ASP.NET 之页面重定向和传值

    在开发 ASP.NET 网站时,经常需要从一个网页重定向(导航)到另一个网页,同时希望能够将信息从源页传递到目标页.例如,如果你正在开发一个保险网站,需要用一个页面来收集基本信息(用户信息.保险产品信 ...

  6. 安装Kali里的应用程序或软件包

    安装Kali里的应用程序或软件包 安装额外的软件是apt-get命令最基本的功能了,命令非常简单易懂.安装软件包的语法如下: apt-get install 软件包名 比如,安装图像编辑软件gimp, ...

  7. SQLiteDeveloper 工具

    破解方法: cmd下执行命令:  reg delete HKEY_CURRENT_USER\SharpPlus\SqliteDev /f

  8. C++(存储类)经典!!

    C++变量的存储类别(动态存储.静态存储.自动变量.寄存器变量.外部变量)动态存储方式与静态存储方式 我们已经了解了变量的作用域.作用域是从空间的角度来分析的,分为全局变量和局部变量. 变量还有另一种 ...

  9. Sql server 本地临时表、全局临时表的区别

    创建了本地临时表#Tmp.全局临时表##Tmp: 本地临时表: 取名以#开头.如:#Tmp(会自动加上一串后缀) 只有当前的连接可以访问 连接关闭后,本地临时表自动释放 全局临时表: 取名以##开头. ...

  10. JPQL 模糊查询,查询条件拼接(like使用)

    @Transactional public List<ViewCorplist2> findAllCorpsLikeK(String kw) { System.out.println(kw ...