描述


http://www.lydsy.com/JudgeOnline/problem.php?id=1833

统计\(a~b\)中数字\(0,1,2,...,9\)分别出现了多少次.

分析


数位dp真是细节又多又容易出错,我都懒得看题解,所以也就懒得写题解了...

注意细节吧还是...

 #include <bits/stdc++.h>
using namespace std; typedef long long ll;
ll a,b;
ll A[],B[],num[];
ll f[][][]; void solve(ll x,ll *a){
if(x==) return;
if(x<){
for(int i=;i<=x;i++) a[i]=;
return;
}
int cnt=;
ll t=;
while(x) num[++cnt]=x%, x/=;
for(int i=;i<cnt;i++)for(int j=;j<=;j++)for(int k=;k<=;k++) a[k]+=f[i][j][k];
for(int i=;i<cnt;i++){
for(int j=;j<num[i];j++)for(int k=;k<=;k++) a[k]+=f[i][j][k];
a[num[i]]+=t+; t=t+num[i]*(ll)pow(,i-);
}
for(int j=;j<num[cnt];j++)for(int k=;k<=;k++) a[k]+=f[cnt][j][k];
a[num[cnt]]+=t+;
}
int main(){
scanf("%lld%lld",&a,&b);
for(int i=;i<=;i++) f[][i][i]=;
for(int i=;i<=;i++){
for(int j=;j<=;j++)for(int k=;k<=;k++) f[i][][k]+=f[i-][j][k];
for(int j=;j<=;j++)for(int k=;k<=;k++) f[i][j][k]=f[i][][k];
for(int j=;j<=;j++) f[i][j][j]+=(ll)pow(,i-);
}
solve(b,B); solve(a-,A);
for(int k=;k<;k++) printf("%lld ",B[k]-A[k]);
printf("%lld\n",B[]-A[]);
return ;
}

1833: [ZJOI2010]count 数字计数

Time Limit: 3 Sec  Memory Limit: 64 MB
Submit: 2569  Solved: 1132
[Submit][Status][Discuss]

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

BZOJ_1833_[ZJOI2010]_数字计数_(数位dp)的更多相关文章

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

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

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

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

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

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

  4. 【BZOJ1833】[ZJOI2010] count 数字计数(数位DP)

    点此看题面 大致题意: 求在给定的两个正整数\(a\)和\(b\)中的所有整数中,\(0\sim9\)各出现了多少次. 数位\(DP\) 很显然,这是一道数位\(DP\)题. 我们可以用前缀和的思想, ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. FreeMarker在JAVA中应用入门

    在项目中通常有生成XML文件发送到另一个系统的需求,简单的办法可以是用一个XML模板,通过Freemarker替换其中的'Mark'(${}),生成最终的XML文件. 下面记录了一下简单的示例步骤: ...

  2. 15_CXF和Spring开发手机号查询网站

    [整体分析] [生成客户端代码] wsdl网址: http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx 生成的客户端代码 [工程截图(已拷入客户端 ...

  3. 九度OJ 1209 最小邮票数 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1209 题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值.     如,有1分,3分,3分,3 ...

  4. OpenJudge/Poj 1753 Flip Game

    1.链接地址: http://bailian.openjudge.cn/practice/1753/ http://poj.org/problem?id=1753 2.题目: 总时间限制: 1000m ...

  5. OpenJudge 2680 化验诊断 C++

    链接地址:http://bailian.openjudge.cn/practice/2680 题目: 总时间限制: 1000ms 内存限制: 65536kB 描述 下表是进行血常规检验的正常值参考范围 ...

  6. UniqueID,页面子控件唯一标示

    aspx: <form id="form1" runat="server">     <asp :Repeater ID="MyDa ...

  7. java Object类

    常用的共性内容 1,实现任何对象的比较,一般比较同一种对象的比较 Object1.equals(Object obj);等同于Object1 == obj: 只有当两个引用指向同一个对象时方法返回tr ...

  8. java 子类的实例化和代码块初始化过程

    1,子类的实例化 1,子父类中的构造函数的特点. 在子类构造对象时,发现,访问子类构造函数时,父类也运行了. 为什么呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super(); 子类 ...

  9. PHP之图形处理

    图形处理 PHP 的图形处理,主要功能集中在 PHP 的图形处理函数. 需要先掌握一些要点.什么叫图片,怎么显示图片. 所谓的图片,其实也是一种文件,只是内容不是我们肉眼直接可见的.如果我们用记事本打 ...

  10. leetcode解题—Longest Palindromic Substring

    题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum l ...