给出一段区间a-b,统计这个区间内0-9出现的次数。

 
比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次。
Input
两个数a,b(1 <= a <= b <= 10^18)
Output
输出共10行,分别是0-9出现的次数
Input示例
10 19
Output示例
1
11
1
1
1
1
1
1
1
1
原谅我是个只会套用模板的辣鸡~
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL bit[], dp[][];//dp[i][j]当前位置前面有j个1的总数
LL dfs0(LL len, bool lead, bool lim, LL num, LL base)//base = 0特殊处理前导0
{
if(len == ) return num;
if(!lim && !lead && dp[len][num]!= -) return dp[len][num];
LL up = lim? bit[len] : ;
LL ans = ;
for(LL i = ; i <= up; i++)
{
ans += dfs0(len - , lead && i == , lim && i == up, num + (i==base && !lead), base);
}
if(!lim && !lead) dp[len][num] = ans;
return ans;
}
LL dfs(LL len, bool lim, LL num, LL base)//base:1-9
{
if(len == ) return num;
if(!lim && dp[len][num]!= -) return dp[len][num];
LL up = lim? bit[len] : ;
LL ans = ;
for(LL i = ; i <= up; i++)
{
ans += dfs(len - , lim && i == up, num + (i==base), base);
}
if(!lim) dp[len][num] = ans;
return ans;
} LL sol(LL n, LL base)
{
LL len = ;
while(n)
{
bit[++len] = n % ;
n /= ;
}
if(base == )
return dfs0(len, , , , base);
else
return dfs(len, , , base);
}
int main()
{
LL n, m;
cin>>n>>m;
for(int i = ; i <= ; i++)
{
memset(dp, -, sizeof dp);
printf("%lld\n", sol(m, i) - sol(n-, i));
}
return ;
}

【51nod-1042】数字0-9的数量的更多相关文章

  1. 51nod 1042数字0-9的数量

    1042 数字0-9的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ...

  2. 51nod 1042 数字0-9的数量 数位dp

    1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数.   比如 10-1 ...

  3. 51nod 1042 数字0-9的数量

    给出一段区间a-b,统计这个区间内0-9出现的次数.   比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次. Inp ...

  4. (数位DP)51NOD 1042 数字0-9的数量

    给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次.   输入 ...

  5. 51nod- 【1042 数字0-9的数量 】

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1042 题目: 1042 数字0-9的数量 基准时间限制:1  ...

  6. 1042 数字0-9的数量 1050 循环数组最大子段和 1062 序列中最大的数 1067 Bash游戏 V2 1092 回文字符串

    1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 给出一段区间a-b,统计这个区间内0-9出现的次数.   比如 10-19,1出现11次 ...

  7. 51 Nod1042 数字0到9的数量

    1042 数字0-9的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ...

  8. 51nod 1042 数位dp

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1042 1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131 ...

  9. 字符串怎么换行 || 字符串中使用单引号时应该怎么写 || 保留两位小数 || 数字0在if中的意思是false || 什么情况下会会报undefined || null和undefined的区别 ||

    换行的字符串 "This string\nhas two lines" 字符串中使用单引号时应该怎么写 'You\'re right, it can\'t be a quote' ...

  10. 【编程题目】n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始

    第 18 题(数组):题目:n 个数字(0,1,…,n-1)形成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m 个数字(第一个为当前数字本身,第二个为当前数字的下一个数字).当一个数字删除后, ...

随机推荐

  1. [转]Algolia的分布式搜索网络架构

    转自:http://www.csdn.net/article/2015-03-11/2824176-the-architecture-of-algolias-distributed-search-ne ...

  2. 关于ajax中responseText不能返回脚本的问题。

    今天做后台时想用ajax返回带有脚本的HTML DOM ,发现脚本被当成字符串了,查了一下responseText()方法返回的是字符串,查了一下百度,用了正则匹配,匹配到脚本然后执行,不想当一个伸手 ...

  3. apache服务器设置

    服务器目录 目录说明 bin: apache常用的一些命令 cgi-bin:存放一些脚本语言命令 conf:apache配置文件 error:错误记录 htodcs存放站点文件 logs:记录日志 m ...

  4. Twitter的分布式自增ID算法snowflake

    snowflake 分布式场景下获取自增id git:https://github.com/twitter/snowflake 解读: http://www.cnblogs.com/relucent/ ...

  5. 手写Bind

    Function.prototype.bind2 = function(context){ var self = this; var args = [].slice.call(arguments,1) ...

  6. MVC readioButtonList的创作过程及运用

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Li ...

  7. mouseover 有一个多次触发的问题

    mouseover 有一个多次触发的问题 需要注意 由于浏览器的冒泡行为.造成如果在一个DIV元素上同时定义了mouseover,mouseout的时候,当鼠标移动到DIV中的child子元素的时候, ...

  8. centos安装oracle客户端

    使用centos远程登陆oracle服务器: 下载需要的rpm包: [root@node1 oracle]# lltotal 59872-rw-r--r-- 1 root root 59865008 ...

  9. 20145231熊梓宏 《网络对抗》 Bof逆向基础.shellcode注入

    20145231网络对抗<逆向及Bof基础>shellcode注入 实验目的与要求 1.本次实践的对象是一个名为pwn1的linux可执行文件. 2.若该程序正常执行,则main函数会调用 ...

  10. NOIP树上问题总结

    这几年考了好几次树上问题: NOIP2012 疫情控制(二分答案+倍增+贪心) NOIP2013 货车运输(最大生成树+倍增) NOIP2014 联合权值(勉强算作树形dp的傻逼题) NOIP2015 ...