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。

Source

Day1


这种裸的数位Dp只有我这蒟蒻不会做吧...

设f[i][j][k]为长度为i, 开头为j, k这个数字出现的次数。

然后就不会了。


#include <iostream>
#include <cstdio>
using namespace std; typedef long long ll;
struct date
{
ll num[];
friend date operator + (date a, date b)
{
date t;
for (int i = ; i <= ; i ++) t.num[i] = b.num[i] + a.num[i];
return t;
}
}f[][];
ll a, b, t[];
date cal(ll x)
{
date ans;
for (int i = ; i <= ; i ++) ans.num[i] = ;
if(!x){ans.num[]=;return ans;}
int len = ;
while(t[len] > x) len--;
for (int i = ; i < len ; i ++)
for (int j = ; j <= ; j ++)
ans = ans + f[i][j];
ans.num[]++;
int lim = x / t[len];
for (int i = ; i < lim ; i ++) ans = ans + f[len][i];
x %= t[len];
ans.num[lim] += x + ;
for (int i = len - ; i ; i --)
{
lim = x / t[i];
for (int j = ; j < lim ; j ++) ans = ans + f[i][j];
x %= t[i];
ans.num[lim] += x + ;
}
return ans;
} int main()
{
t[] = ;for (int i = ; i <= ; i ++) t[i] = t[i-] * ;
for (int i = ; i <= ; i ++) f[][i].num[i] = ;
for (int i = ; i <= ; i ++)
{
for (int x = ; x <= ; x ++)
{
for (int y = ; y <= ; y ++)
{
f[i][y] = f[i][y] + f[i-][x];
f[i][y].num[y] += t[i-];
}
}
}
scanf("%lld%lld", &a, &b);
date t1 = cal(a-), t2 = cal(b);
for (int i = ; i <= ; i ++) printf("%lld ",t2.num[i] - t1.num[i]);
printf("%lld", t2.num[] - t1.num[]);
return ;
}

[BZOJ1833][ZJOI2010]数字计数的更多相关文章

  1. [bzoj1833][ZJOI2010]数字计数(数位DP)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1833 分析:简单的数位DP f[i][j][k]表示在i位数.最高位j的所有数字中k的 ...

  2. 【洛谷】2602: [ZJOI2010]数字计数【数位DP】

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

  3. P2602 [ZJOI2010]数字计数(递推)

    P2602 [ZJOI2010]数字计数 思路: 首先考虑含有前导0的情况,可以发现在相同的\(i\)位数中,每个数的出现次数都是相等的.所以我们可以设\(f(i)\)为\(i\)位数每个数的出现次数 ...

  4. P2602 [ZJOI2010]数字计数&P1239 计数器&P4999 烦人的数学作业

    P2602 [ZJOI2010]数字计数 题解 DFS 恶心的数位DP 对于这道题,我们可以一个数字一个数字的求 也就是分别统计区间 [ L , R ] 内部数字 i 出现的次数 (0<=i&l ...

  5. 数位dp详解&&LG P2602 [ZJOI2010]数字计数

    数位dp,适用于解决一类求x~y之间有多少个符合要求的数或者其他. 例题 题目描述 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除 ...

  6. 洛谷P2602 [ZJOI2010]数字计数 题解 数位DP

    题目链接:https://www.luogu.com.cn/problem/P2602 题目大意: 计算区间 \([L,R]\) 范围内 \(0 \sim 9\) 各出现了多少次? 解题思路: 使用 ...

  7. UVA.1640.The Counting Problem / BZOJ.1833.[ZJOI2010]数字计数(数位DP)

    题目链接 \(Description\) 求\([l,r]\)中\(0,1,\cdots,9\)每个数字出现的次数(十进制表示). \(Solution\) 对每位分别DP.注意考虑前导0: 在最后统 ...

  8. 洛谷P2602 [ZJOI2010]数字计数(数位dp)

    数字计数 题目传送门 解题思路 用\(dp[i][j][k]\)来表示长度为\(i\)且以\(j\)为开头的数里\(k\)出现的次数. 则转移方程式为:\(dp[i][j][k] += \sum_{t ...

  9. BZOJ1833或洛谷2602 [ZJOI2010]数字计数

    BZOJ原题链接 洛谷原题链接 又是套记搜模板的时候.. 对\(0\sim 9\)单独统计. 定义\(f[pos][sum]\),即枚举到第\(pos\)位,前面枚举的所有位上是当前要统计的数的个数之 ...

随机推荐

  1. js 手机号码正则表达式

    var chenkPhone=/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/var username=$ ...

  2. SpringCloud-Hystrix Dashboard 之 Unable to connect to Command Metric Stream

    实践hystrix dashboard仪表盘的时候,不管是按照书上的还是网上的,都提示Unable to connect to Command Metric Stream. 查了好久发现,如果使用sp ...

  3. 【linux】【sonarqube】安装sonarqube7.9

    前言 SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量. 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol ...

  4. 08.Django基础六之ORM中的锁和事务

    一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在事务里面,至于如何开启事务,我们看下面的事务一节. 返回一个锁住行直 ...

  5. 工厂模式(整理自李建忠<C++设计模式>视频)

    整理自李建忠<C++设计模式>视频 一.导入:"对象创建"模式和工厂模式 工厂模式只是该模式下的一种. 二.举例说明 有这样一个场景:需要在MainForm中设计一个按 ...

  6. 23种设计模式之观察者模式(Observer Pattern)

    观察者模式(Observer Pattern):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象,这个主题对象在状态发生变化时,会通知所有观察者.当一个对象改变需要同时改变其他对象, ...

  7. 又写了两个实用的微信小程序

    忙里偷闲,最近又写了两个小程序. 一个是手机壁纸小程序,名字叫[来搜图],特点是界面干净清爽,没有多余的东西.开发这个是因为讨厌市面上那些壁纸app那样那么多的广告,真的太影响体验了.而且小程序更加轻 ...

  8. 快学Scala 第十三课 (类型层级,对象相等性)

    Scala 类型层级: 对象相等性: 和Java一样要重写equals方法和hashcode方法 class Student(val id: Int, val name: String) { over ...

  9. 通过搭建MySQL掌握k8s(Kubernetes)重要概念(下):参数配置

    本文通过搭建MySQL环境来了解k8s的重要概念,包括持久卷,网络和参数配置.这是下篇,专门讲解参数配置.如果你有些地方不能完全看明白,请先看上篇"通过搭建MySQL掌握k8s(Kubern ...

  10. Java-Thread01之创建线程

    ------ ![](https://img2018.cnblogs.com/blog/1822322/201910/1822322-20191012203044528-233907422.jpg) ...