(数位DP)51NOD 1042 数字0-9的数量
输入
两个数a,b(1 <= a <= b <= 10^18)
输出
输出共10行,分别是0-9出现的次数
输入样例
10 19
输出样例
1
11
1
1
1
1
1
1
1
1 解:被这道题卡了好久。。。最后自己找了个数模拟了一边流程。
举个例子简单说说:对于数5314,我们可以将它拆分为【5310-5314】【5300-5309】【5000-5299】【0-4999】(注意删去前置0)这几个区间计算,以此得出答案。
#include <stdio.h>
#include <string.h>
#include <math.h> long long num[][],res,a,b; void func(long long *tmp,long long *p,long long power)
{
if (power == ) res = ;
int t = *tmp % ;
if (*tmp == )
{
int n = log10((double)power);
power /= ;
for (int i = ; i < n; ++i) p[] -= * (power /= ) * i;
p[] -= n - ;
return;
}
*tmp /= ;
if (res == ) t++;
long long v= (long long)log10((double)power) * power / * t;
for (int i = ; i >= t; --i) p[i] += v;
for (int i = ; i < t; ++i) p[i] += power + v;
p[t] += res;
res += t * power;
func(tmp, p, power * );
return;
}
int main()
{
while (scanf_s("%lld%lld", &a, &b) != EOF)
{
memset(num, , sizeof num);
a--;
func(&a, num[], );
func(&b, num[], );
for (int i = ; i < ; ++i) printf("%lld\n", num[][i] - num[][i]);
}
return ;
}
当然也可以分别计算0-9的个数,但我不想继续琢磨了。。。
(数位DP)51NOD 1042 数字0-9的数量的更多相关文章
- 51nod 1042 数字0-9的数量 数位dp
1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-1 ...
- 51nod 1042数字0-9的数量
1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ...
- 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 ...
- 数位dp——奏响数字数位的美妙乐章
数位dp:处理数字数位关系的一种dp方式. 一般的题目特征十分明显: 1.一般和数字本身有很大关系. 2.一般求数字在区间L,R中的一些信息 3.L,R一般很大,通常能达到long long级别. d ...
- leetcode 902 数位dp 不包含0
复习了一下数位dp 肯定不包含0,但是通常数位dp最后计算的结果较小的是包含前导0的,只是没显示出来而已,所以这题需要前导0,但是非前导0是不需要算进去的,因此,加个是否是前导0的状态即可 class ...
- 【HDU 5456】 Matches Puzzle Game (数位DP)
Matches Puzzle Game Problem Description As an exciting puzzle game for kids and girlfriends, the Mat ...
- 【数位DP】【P4127】[AHOI2009]同类分布
Description 给出两个数 \(a,~b\) 求出 \([a~,b]\) 中各位数字之和能整除原数的数的个数. Limitations \(1 \leq a,~b \leq 10^{18}\) ...
- 数位dp踩坑
前言 数位DP是什么?以前总觉得这个概念很高大上,最近闲的没事,学了一下发现确实挺神奇的. 从一道简单题说起 hdu 2089 "不要62" 一个数字,如果包含'4'或者'62', ...
- 数位dp入门 HDU 2089 HDU 3555
最基本的一类数位dp题,题目大意一般是在a~b的范围,满足某些要求的数字有多少个,而这些要求一般都是要包含或者不包含某些数字,或者一些带着数字性质的要求,一般来说暴力是可以解决这一类问题,可是当范围非 ...
随机推荐
- HDU 1242 rescue (优先队列模板题)
Rescue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 【数据结构】二叉树(c++)
头文件: #include <iostream> using namespace std; template<class Type> class Bintree; //结点类 ...
- MaterialImageLoading
https://github.com/eltld/MaterialImageLoading
- 基本SCTP套接字编程常用函数
sctp_bindx函数:允许SCTP套接字捆绑一个特定地址子集 #include <netinet/sctp.h> // 若成功返回0,出错返回-1 int sctp_bindx(int ...
- 使用virtualenv, uwsgi, nginx来布署flask
本文讲述了怎样使用virtualenv, uwsgi, nginx来布署flask的步骤. 升级软件包 运行下面命令,保证你的机器安装了最新的软件包. sudo apt-get update sudo ...
- rails使用mysql数据库
简单步骤 1,安装mysql 安裝 MySQL Ubuntu 上安裝 MySQL 請執行: $ sudo apt-get install mysql-server mysql-common mysql ...
- linux 解决 Device eth0 does not seem to be present
在虚拟机中安装cent os系统,然后配置网络 执行命令ifconfig 没有看到eth0的信息: 重启网卡报错: service network restart Shutting down loop ...
- html5--6-53 阶段练习4-画廊
html5--6-53 阶段练习4-画廊 学习要点 运用所学过的知识完成一个简单的小练习,理解对过渡动画的应用. @charset "utf-8"; /* CSS Document ...
- silverlight DataGrid 内嵌ComboBox 实现加载和保存
<Grid x:Name="LayoutRoot" Background="White" Height="322" Width=&qu ...
- Top的VIRT是什么
Top命令监控某个进程的资源占有情况 下面是各种内存: VIRT:virtual memory usage 1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等 2.假如进程申请1 ...