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(b)-f(a-1)

然后就是比较简单的数位dp

f[i,j]表示长度为i以j开头0到9各个数字的出现次数

先算出全部的,再减去不合法的

不合法的就是枚举,减去从第i位开始超出n的情况,注意减去比第i位更高的数字(一开始就这样WA的)

 type
node=array[..]of int64;
var
f:array[..,..]of node;
ten:array[..]of int64;
a,b:int64; operator +(a,b:node)c:node;
var
i:longint;
begin
for i:= to do
c[i]:=a[i]+b[i];
end; operator -(a,b:node)c:node;
var
i:longint;
begin
for i:= to do
c[i]:=a[i]-b[i];
end; operator *(a:node;b:int64)c:node;
var
i:longint;
begin
for i:= to do
c[i]:=a[i]*b;
end; function ff(x:int64):node;
var
s:array[..]of longint;
i,j,len:longint;
fff:node;
begin
fillchar(ff,sizeof(ff),);
fillchar(fff,sizeof(fff),);
for i:= to do
begin
s[i]:=x mod ;
x:=x div ;
end;
for i:= downto do
if s[i]<> then break;
len:=i;
for i:= to len do
for j:= to do
ff:=ff+f[i,j];
for i:=len downto do
begin
for j:=s[i]+ to do
ff:=ff-f[i,j]-fff*ten[i];
inc(fff[s[i]]);
end;
end; procedure print(a:node);
var
i:longint;
begin
for i:= to do
write(a[i],' ');
write(a[]);
end; procedure main;
var
i,j,k:longint;
begin
read(a,b);
ten[]:=;
for i:= to do
ten[i]:=ten[i-]*;
for i:= to do
for j:= to do
begin
for k:= to do
f[i,j]:=f[i,j]+f[i-,k];
inc(f[i,j,j],ten[i]);
end;
print(ff(b)-ff(a-));
end; begin
main;
end.

1833: [ZJOI2010]count 数字计数 - BZOJ的更多相关文章

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

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

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

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

  3. [BZOJ 1833] [ZJOI2010] count 数字计数 【数位DP】

    题目链接:BZOJ - 1833 题目分析 数位DP .. 用 f[i][j][k] 表示第 i 位是 j 的 i 位数共有多少个数码 k . 然后差分询问...Get()中注意一下,如果固定了第 i ...

  4. 【BZOJ】1833 [ZJOI2010]count 数字计数

    [算法]数位DP [题解] 记忆化搜索 #include<cstdio> #include<algorithm> #include<cstring> #define ...

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

    Description 问 \([L,R]\) 中0-9的个数. Sol 数位DP. 预处理好长度为 \(i\), 最高位为 \(j\) 的数位之和. 然后从上往下计算,不要忘记往下走的同时要把高位的 ...

  6. bzoj 1833 [ZJOI2010]count 数字计数(数位DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1833 [题意] 统计[a,b]区间内各数位出现的次数. [思路] 设f[i][j][k ...

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

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

  8. 【BZOJ】1833: [ZJOI2010] count 数字计数(数位dp)

    题目 传送门:QWQ 分析 蒟蒻不会数位dp,又是现学的 用$ dp[i][j][k] $ 表示表示长度为i开头j的所有数字中k的个数 然后预处理出这个数组,再计算答案 代码 #include < ...

  9. bzoj 1833: [ZJOI2010]count 数字计数【数位dp】

    非典型数位dp 先预处理出f[i][j][k]表示从后往前第i位为j时k的个数,然后把答案转换为ans(r)-ans(l-1),用预处理出的f数组dp出f即可(可能也不是dp吧--) #include ...

随机推荐

  1. SVG之初识

    什么是SVG? 也许现在很多人都听说过SVG的人比较多,但不一定了解什么是SVG:SVG(Scalable Vector Graphics 一大串看不懂的英文)可伸缩矢量图形,它是用XML格式来定义用 ...

  2. asp.net运算符之逻辑运算符以及其他运算符

    逻辑(布尔型)运算符用于对boolean型的结果的表达式进行运算,运算的结果都是boolean型.其运算结果如下所示: 运算符 运算 例子 结果 & AND(与) false&true ...

  3. [老老实实学WCF] 第九篇 消息通信模式(上) 请求应答与单向

    老老实实学WCF 第九篇 消息通信模式(上) 请求应答与单向 通过前两篇的学习,我们了解了服务模型的一些特性如会话和实例化,今天我们来进一步学习服务模型的另一个重要特性:消息通信模式. WCF的服务端 ...

  4. Cocos2d-JS地图性能问题

    如图所示游戏场景,它是我们以往介绍的实例,在场景中有三个方块精灵(BoxA.BoxB和BoxC)和背景精灵,这个背景叫做“地图”有点牵强,地图采用了有规律的纹理. 游戏场景 那么我们如何设计这个游戏地 ...

  5. 一个简单的获取参数的jqure

    今天做项目的时候需要用到上一页面传递过来的参数(只要一个参数),其解决办法就是下面: char latter=location.search.split('=')[1] 以上直接获取到第一个参数的值为 ...

  6. (转)分布式缓存GemFire架构介绍

    1什么是GemFire GemFire是一个位于应用集群和后端数据源之间的高性能.分布式的操作数据(operational data)管理基础架构.它提供了低延迟.高吞吐量的数据共享和事件分发.Gem ...

  7. 对ASP.Net的认识(三)

    较为详细的整个请求处理流程 Application: BeginRequestApplication: PreAuthenticateRequestApplication: AuthenticateR ...

  8. tomcat中的get、post区别

    最近做一个项目,前台传到后台的数据是乱码.看着代码应该是正确的,但是就是有问题,然后请教了旁边的老司机才找到问题是什么.话不多说,下面是模拟情景的代码,其实也很简单,前台一个form表单,post   ...

  9. Flex设置外部浏览器

    Flex Builder默认的外围浏览器是微软 Internet Explorer. 如果想改成Firefox,步骤如下: Window>Preferences>General>We ...

  10. 【Sharing】如何成为一名黑客

    [声明]此文为转载,只为收藏. 从小到大听说了无数关于“电脑黑客”的故事,比如XXX入侵美国五角大楼,再比如前几年的“熊猫烧香”病毒,这些故事的主角都被我们的媒体称之为“黑客”.其实这些人,更大程度上 ...