Description

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

Input

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

Output

输出文件中包含一行10个整数,分别表示0-9在[a,b]中出现了多少次。
 
数位dp
c[i]表示长度为i的由0~9组成的串中每个字符的出现次数
F(x)计算与x位数相同且不大于x的数中每个字符的出现次数并累加到答案数组f
#include<cstdio>
typedef long long lint;
lint c[]={};
lint p10[]={};
lint l,r;
lint f[];
void F(lint x){
if(!x)return;
int v[],p=;
while(x)f[v[++p]=x%]++,x/=;
for(int i=;i<v[p];i++){
for(int j=;j<=;j++)f[j]+=c[p-];
f[i]+=p10[p-];
}
for(int k=p-;k>=;k--){
for(int i=;i<v[k];i++){
for(int j=;j<=;j++)f[j]+=c[k-];
f[i]+=p10[k-];
for(int j=p;j>k;j--)f[v[j]]+=p10[k-];
}
}
}
int main(){
for(int i=;i<;i++)p10[i]=p10[i-]*;
for(int i=;i<;i++)c[i]=c[i-]*+p10[i-];
scanf("%lld%lld",&l,&r);
--l;
F(l);
for(int i=;p10[i]-<l;i++)F(p10[i]-);
for(int i=;i<;i++)f[i]=-f[i];
F(r);
for(int i=;p10[i]-<r;i++)F(p10[i]-);
printf("%lld",f[]);
for(int i=;i<=;i++)printf(" %lld",f[i]);
return ;
}

bzoj1833 数字计数的更多相关文章

  1. bzoj1833数字计数

    题目链接 找$[1$ ~ $a-1]$和$[1$ ~ $b]$中各数码出现的次数之后相减就是答案 上代码: /********************************************* ...

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

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

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

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

  4. 【BZOJ-1833】count数字计数 数位DP

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 2494  Solved: 1101[Submit][ ...

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

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

  6. BZOJ_1833_[ZJOI2010]_数字计数_(数位dp)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1833 统计\(a~b\)中数字\(0,1,2,...,9\)分别出现了多少次. 分析 数位dp ...

  7. BZOJ 1833: [ZJOI2010]count 数字计数( dp )

    dp(i, j, k)表示共i位, 最高位是j, 数字k出现次数. 预处理出来. 差分答案, 对于0~x的答案, 从低位到高位进行讨论 -------------------------------- ...

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

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

  9. BZOJ_1833_[ZJOI2010]count 数字计数_数位DP

    BZOJ_1833_[ZJOI2010]count 数字计数_数位DP 题意: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 分析: 数位DP f[i][ ...

随机推荐

  1. sql server 的变量

    对于占用关键字等不符合规则的命名,可使用中括号[ ]括起来. 局部变量: 局部变量名必须以@开头,作用范围仅为程序内部. 常用用途: 1.作为计数器计算循环执行的次数或控制循环执行的次数 2.保存数据 ...

  2. L1-040 最佳情侣身高差

    专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高).如果符合,你俩的身高差不管是牵手.拥抱.接吻,都是最和谐的差度. 下面就请你写个程序,为任意一 ...

  3. python 模块化管理,导入自己的模块(包)

    很多东西似懂非懂,或者当时看懂了,但是感觉不是很重要,经常不用,时间久了,也就变得似懂非懂了.今天被某度电话面试问道一个问题,就是模块倒入,其实我之前也是很仔细的研究过的,不过由于平时做的东西太简单, ...

  4. 【数据库】MFC ODBC(一)

    一.动态创建ODBC数据源 ODBC API提供了动态创建数据源的函数SQLConfigDataSource.该函数的原型如下: BOOL SQLConfigDataSource ( HWND hwn ...

  5. memcache原理及环境搭建、测试

    一.原理       Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单 ...

  6. addslash()

    php addslashes函数的作用是在预定义的字符前面加上反斜杠,这些预定义字符包括: 单引号(') 双引号(") 反斜杠(\) NULL addslashes函数经常使用在向数据库插入 ...

  7. C#中数组数据类型字符串转double型问题

    再给你说一下我的意思吧.有一个string类型的数组a,a中的每一个元素实际上是一个小数,现在是想把a中的这些小数全都从string型转换成double类型,最后组成一个double型的数组b,说白了 ...

  8. Bootstrap CustomBox 弹层

    这个模态窗口插件使用原生javascript制作,它也可以和jQuery完美的结合.请注意:这些模态窗口动画仅仅工作在支持各自CSS3属性的浏览器上.Internet Explorer 8 和 9需要 ...

  9. SWIFT中数字格式

    SWIFT中格式化数字比较常用的应该就是以下几种格式了. var formatter = NSNumberFormatter() //formatter.numberStyle = NSNumberF ...

  10. NBUT 1218 You are my brother 2010辽宁省赛

    Time limit 1000 ms Memory limit 131072 kB Little A gets to know a new friend, Little B, recently. On ...