题目传送门

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


继续数位dp=w=。

这一次我们不需要记录$pre$啦!(撒花)。

因为这次我们需要的是统计个数!那么我们就可以针对每个数字,搞一次记搜。记搜的时候只要注意传递下当前的数字个数就行了。

当然了我们还是需要关注下前导0的,如果现在还是前导0呢,那么肯定不能计数了...

Code

 #include<cstdio>
#include<algorithm>
#include<cstring> using namespace std;
typedef long long ll; int len;
int border[];
ll l,r;
ll dp[][]; ll dfs(int pos,int sum,int ling,int limit,int num)
{
if(pos<) return sum;
if(!limit&&dp[pos][sum]!=-&&!ling) return dp[pos][sum];
ll tmp=;
ll lim=limit ? border[pos] : ;
for(int i=;i<=lim;i++)
{
if(ling&&i==) tmp+=dfs(pos-,,,limit&&i==lim,num);
else tmp+=dfs(pos-,sum+(i==num ? : ),,limit&&i==lim,num);
}
if(!ling&&!limit) dp[pos][sum]=tmp;
return tmp;
} ll work(ll x,int num)
{
len=;
memset(dp,-,sizeof(dp));
while(x)
{
border[++len]=x%;
x/=;
}
return dfs(len,,,,num);
} int main()
{
scanf("%lld%lld",&l,&r);
for(int i=;i<=;i++)
printf("%lld ",work(r,i)-work(l-,i));
return ;
}

最新文章

  1. [TCPIP] DNS Note
  2. Web服务器部署浅析
  3. MyString(重写String)
  4. Runtime 方法替换 和 动态添加实例方法 结合使用
  5. UpdatePanel AsyncPostBackTrigger PostBackTrigger 区别
  6. go切片
  7. [RxJS] just, return
  8. Android Touch事件传递机制
  9. 1230.2——iOS准备(阅读开发者文档时的笔记)
  10. 数据结构- 串的模式匹配算法:BF和 KMP算法
  11. matlab实现协同过滤之pdist、squareform
  12. hadoop学习;大数据集在HDFS中存为单个文件;安装linux下eclipse出错解决;查看.class文件插件
  13. VMware vSphere 服务器虚拟化之十七 桌面虚拟化之安装View链接服务器
  14. 深入理解C# 静态类与非静态类、静态成员的区别 [转载]
  15. Spring+MyBatis+SpringMvc整合Demo
  16. Java IO(3)非阻塞式输入输出(NIO)
  17. 精读《V8 引擎 Lazy Parsing》
  18. 2.Magicodes.NET框架之路——策略管理
  19. XSS-HTML&amp;javaSkcript&amp;CSS&amp;jQuery&amp;ajax-CSS
  20. 《倾国倾城》全套源代码:client+服务端+资源,歧视复制帖子

热门文章

  1. (转)我在北京工作这几年 &ndash; 一个软件工程师的反省
  2. Jquery根据name取得所有选中的Checkbox值
  3. java中方法中声明三个点“...”作用
  4. filter、servlet、interceptor的执行顺序
  5. 浏览器上的Qt Quick
  6. CH 5102 Mobile Service(线性DP)
  7. Cats transport(codeforces311B)(斜率优化)
  8. Kafka使用kclient三种使用方法
  9. 转:创建表空间,删除后再次创建,报错ORA-01119
  10. hdu 1043 Eight(双向bfs)