没有原题传送门。。

手打原题QAQ

【问题描述】

    一本书的页数为N,页码从1开始编起,请你求出全部页码中,用了多少个012,…,9。其中—个页码不含多余的0,如N1234时第5页不是0005,只是5

【输入】

       一个正整数N(N109),表示总的页码。

【输出】

       共十行:第k行为数字k-1的个数。

这道题是一道很有意思的DP题。

我们先来看一看这道题目

就是求1~n这么多个数中有多少个X数字。

然后我们来看一看一个例子:

在1~10这10个数中,每个数字(0~9)都在个位数中出现了1次。

在1~100这100个数中,每个数字(0~9)都在十位数中出现了10次。

在1~1000这1000个数中,每个数字(0~9)都在百位数中出现了100次。

以此类推。

所以我们得出了规律

在1~10^n中,数字x在第n-1位中出现了10^n-1次

如求2516数字5出现的次数

首先在2511~2516中,数字5在个位数出现1次;

在1~2510中,数字5在个位数中出现251次

251+1=252;

在1~2500中,数字5在十位数中出现25*10=250次

在1~2000中,数字5在百位数出现了2*100=200次

但是没完!

在2500~2516这么多数中,数字5在百位数还出现了16+1=17次

因为千位数字为2,小于5,所以5不会出现在千位

所以数字5出现的总次数就是252+250+200+17=719次

所以对于任何一个数字X,计算法则如下

计算X在右数第i位出现的次数

则为:

a=X*10^(i-1);

若num[i]>X return a+10^(i-1)即开头全部都为X数字的

若num[i]<X return a;

若num[i]==x return a+num%(10^i)+1;

但是对于任何一个数,0不可能为首位。

所以在计算0只能计算到第n-1位(假设num的位数为n)

然后判断一下就可以搞出来啦!

#include<iostream>
#include<cstdio>
using namespace std;
int qs,n,l;
long long num[];
long long tt[];
long long ans[];
int main(){
freopen("count.in","r",stdin);
freopen("count.out","w",stdout);
scanf("%d",&n);
qs=n;
while(qs){
l++;
num[l]=qs%;
qs/=;
}
tt[]=;
for(int i=;i<=;i++)
tt[i]=tt[i-]*;
qs=n;
for(int i=l;i>=;i--)
{
for(int j=;j<=;j++)
ans[j]+=tt[i-]*num[i]*(i-);
for(int j=;j<num[i];j++)
ans[j]+=tt[i];
ans[num[i]]+=qs%tt[i]+;
}
for(int i=;i<=l;i++)
ans[]-=tt[i];
for(int i=;i<=;i++)
printf("%lld\n",ans[i]);
fclose(stdin);
fclose(stdout);
return ;
}

(计数器)NOIP模拟赛(神奇的数位DP题。。)的更多相关文章

  1. 2018.08.19 NOIP模拟 number(类数位dp)

    Number 题目背景 SOURCE:NOIP2015-SHY-10 题目描述 如果一个数能够表示成两两不同的 3 的幂次的和,就说这个数是好的. 比如 13 是好的,因为 13 = 9 + 3 + ...

  2. 【NOIP模拟赛】超级树 DP

    这个题我在考试的时候把所有的转移都想全了就是新加一个点时有I.不作为II.自己呆着III.连一个IV.连接两个子树中的两个V连接一个子树中的两个,然而V我并不会转移........ 这个题的正解体现了 ...

  3. 2018.11.07 NOIP模拟 异或(数位dp)

    传送门 对于每个二进制位单独考虑贡献. 然后对于两种情况分别统计. 对于第二种要用类似数位dpdpdp的方法来计算贡献. 代码

  4. 2019.6.1 模拟赛——[ 费用流 ][ 数位DP ][ 计算几何 ]

    第一题:http://codeforces.com/contest/1061/problem/E 把点集分成不相交的,然后跑费用流即可.然而错了一个点. #include<cstdio> ...

  5. [noip模拟赛]某种数列问题<dp>

    某种数列问题  (jx.cpp/c/pas) 1000MS 256MB 众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以 ...

  6. NOIp模拟赛 巨神兵(状压DP 容斥)

    \(Description\) 给定\(n\)个点\(m\)条边的有向图,求有多少个边集的子集,构成的图没有环. \(n\leq17\). \(Solution\) 问题也等价于,用不同的边集构造DA ...

  7. 模拟赛毒瘤状压DP题:Kronican

    Kronican 内存限制:32 MiB 时间限制:2000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 上传者: cqbzgm 题目描述 Mislav有N个无限体积的杯子,每一个杯子中都 ...

  8. Nescafe #29 NOIP模拟赛

    Nescafe #29 NOIP模拟赛 不知道这种题发出来算不算侵权...毕竟有的题在$bz$上是权限题,但是在$vijos$似乎又有原题...如果这算是侵权的话请联系我,我会尽快删除,谢谢~ 今天开 ...

  9. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

随机推荐

  1. 笔记-python-standard library-16.3 time

    笔记-python-standard library-16.3 time 1.      time 1.1.    开始 time模块中时间表现的格式主要有三种: timestamp时间戳,时间戳表示 ...

  2. Android面试收集录10 LruCache原理解析

    一.Android中的缓存策略 一般来说,缓存策略主要包含缓存的添加.获取和删除这三类操作.如何添加和获取缓存这个比较好理解,那么为什么还要删除缓存呢?这是因为不管是内存缓存还是硬盘缓存,它们的缓存大 ...

  3. 通过slf4j/log4j的MDC/NDC 实现日志追踪

    在分布式系统或者较为复杂的系统中,我们希望可以看到一个客户请求的处理过程所涉及到的所有子系统\模块的处理日志. 由于slf4j/log4j基本是日志记录的标准组件,所以slf4j/log4j成为了我的 ...

  4. python 读取数据库中文内容显示一堆问号

    需要在连接数据库时 设置编码格式 def select_db(self,db_name): self.conn = MySQLdb.connect( host = self.ip, port = se ...

  5. 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法

    孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步的语音笔记朗读:https://www.ximalaya.com/keji/1 ...

  6. 台州学院maximum cow训练记录

    前队名太过晦气,故启用最大牛 我们的组队大概就是18年初,组队阵容是17级生詹志龙.陶源和16级的黄睿博. 三人大学前均无接触过此类竞赛,队伍十分年轻.我可能是我们队最菜的,我只是知道的内容最多,靠我 ...

  7. PPC Windows Mobile判断网络(gprs)连接与否代码

    转载 在PPC的开发中有时需要判断网络什么时候连接,什么时候断开,并且做出相应的处理.比如说TimeSyncPPC程序,就需要在网络连接之后得到消息然后去下载时间同步信息,因此就必须要一种方法让Tim ...

  8. 设计模式之单例模式与工厂模式的Python实现(一)

    1. 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上 ...

  9. 【bzoj2500】幸福的道路 树形dp+倍增RMQ+二分

    原文地址:http://www.cnblogs.com/GXZlegend/p/6825389.html 题目描述 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一 ...

  10. Android社会化分享功能的实现步骤

    众所周知,互联网是一个资源共享的地方,在网络上,我们可以分享我们所有认为好的资源.而随着互联网信息爆发式的增长,我们习惯了一键分享功能,比如:微博分享.微信分享.QQ空间分享.人人网分享等等.由此可见 ...