链接:https://ac.nowcoder.com/acm/contest/338/F
来源:牛客网

题目描述

AFei loves numbers. He defines the natural number containing "520" as the AFei number, such as 1234520, 8752012 and 5201314. Now he wants to know how many AFei numbers are not greater than n.

输入描述:

  1. The first line contains an integer T (1 <= T <= 100 ).
  2.  
  3. The following T lines contain an interger n ( 0 <= n <= 1e18 ).

输出描述:

  1. For the last T lines, output the total numbers of AFei numbers that are not greater than n.
示例1

输入

复制

  1. 2
  2. 1000
  3. 5520

输出

复制

  1. 1
  2. 16

说明

  1. For the first case, only 520 is AFei number.
  2.  
  3. For the second case, 520,1520, 2520, 3520, 4520, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209 and 5520 are AFei number. So there are 16 AFei numbers.
  1. 题意:给定一个自然数n(<=n<=1e18),求[,n]里有多少个整数包含“”(即所谓Afei数的数量)
  2.  
  3. 解题思路: 数位DP入门题。
  4.  
  5. 首先,设dp[i]表示长度为iAFei数的数量。发现这样不行,因为按数位计算的话,每次只会考虑一位,而AFei 数的特征是要有连续的三位,并且第一位是5,第二位是2,第三位是0
  6.  
  7. 这说明需要记录前两位,那么设dp[i][j]表示以j开头,后面还有i位的AFei数的数量。比如dp[][]就是表示形 25****的数字中,AFei数的数量。因为n只有1e18,所以i最大不超过19,而j是用来记录前两位的,所以j 大不超过99,所以声明dp数组的时候只需要long long dp[][]即可。
  8.  
  9. AFei数并没有规定“”的数量有多少个,碰到这样的我习惯性反着算,也就是用dp[i][j]表示以j开头,后面 还有i位的不是AFei数的数量。算到最后再减一下就行了。
  10.  
  11. 状态转移方程:
  12.  
  13. 举个例子:以f(****)表示形如****的不是afei数的数量,显然:f[****]=f[***]+f[***]+f[***]+f[***]+f[***]+f[***]+f[***]+f[***]+f[***]+f[***]也就是dp[][] = σ
  14. F Find the AFei Numbers的更多相关文章

      1. F. Igor and Interesting Numbers
      1. http://codeforces.com/contest/747/problem/F cf #387 div2 problem f 非常好的一道题.看完题,然后就不知道怎么做,感觉是dp,但是不知道 ...

      1. CSU 201812月月赛 F(2218): Finding prime numbers
      1. Description xrdog has a number set. There are 95 numbers in this set. They all have something in com ...

      1. 湖南大学第十四届ACM程序设计新生杯(重现赛)
      1. RANK  0 题数 0 期末复习没有参加,补几道喜欢的题. A: AFei Loves Magic  签到 思路 :不需考虑 碰撞 直接计算最终状态即可. #include<bits/stdc ...

      1. F.Cards with Numbers
      1. 链接:https://ac.nowcoder.com/acm/contest/908/F 题意: AFei has many cards. Each card has a number written ...

      1. [LeetCode] Count Numbers with Unique Digits 计算各位不相同的数字个数
      1. Given a non-negative integer n, count all numbers with unique digits, x, where 0 x < 10n. Examp ...

      1. Java [Leetcode 357]Count Numbers with Unique Digits
      1. 题目描述: Given a non-negative integer n, count all numbers with unique digits, x, where 0 x < 10n. ...

      1. [转]查询表达式 (F#)
      1. 本文转自:http://msdn.microsoft.com/zh-cn/library/hh225374.aspx 查询表达式可以查询数据源并将数据是一种预期形式.             查询表达 ...

      1. Python中用format函数格式化字符串
      1. Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 语法:%[( ...

      1. python基础之day2
      1. python基本数据类型 1.数字 int(整型)      32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647  64位系统 ...

    1.  
    2. 随机推荐

        1. KC705E 增强版 基于FMC接口的Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 接口卡
        1. KC705E 增强版 基于FMC接口的Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 接口卡 一.板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FF ...

        1. leetcode x进制数 python3
        1. 不少题目都是实现吧10进制数转换成x进制数,实际上都是一个套路,下面是7进制的,想换成什么进制,把7替换成相应数字即可,输出的是字符串 16,32进制这种有特殊要求的转不了,其他的应该通用 class ...

        1. [USACO]奶牛会展(背包)
        1. [USACO]奶牛会展 题目背景 奶牛想证明它们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N 头奶牛进行 了面试,确定了每头奶牛的智商和情商. 题目描述 贝西有权选择让哪些奶牛参加展览. ...

        1. GDB学习笔记
        1. GDBUNIXUNIX-like下的调试工具.GDB这个调试工具相比于VC.z的优点是具有修复网络断点以及恢复链接等功能. 一.功能 一般来说,GDB主要帮助你完成下面四个方面的功能: 1.启动你 ...

        1. PHP: thinkPHP踩坑记录(实现API接口以及处理莫名其妙的500问题)
        1. 因为各种原因开始学习PHP,并且要在两周内能够对PHP项目进行二次开发,还好PHP够简单,至少入门很简单,很快就接触thinkPHP框架. 在了解了路由匹配视图的规则之后,开始着手尝试编写API接口, ...

        1. php内置函数分析之ucfirst()、lcfirst()
        1. ucfirst($str)  str 的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串. 源码位于 ext/standard/string.c /* {{{ php_ucfirst Up ...

        1. 第四周作业—N42-虚怀若谷
        1. 一.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@centos7 ~]# grep -v "/sbin/nolo ...

        1. NVMe固态硬盘工具箱使用说明
        1. https://www.bilibili.com/read/cv562989/ 浦科特NVMe固态硬盘工具箱使用说明 数码 2018-6-7 687阅读7点赞3评论 浦科特已经推出针对NVMe固态硬盘 ...

        1. xss盲打
        1. 什么是xss盲打? 简单来说,盲打就是在一切可能的地方尽可能多的提交xss语句,然后看哪一条会被执行,就能获取管理员的cooike.趁着没过期赶紧用了,这样就能直接管理员进后台.然后再上传一句话,大马 ...

        1. 谈谈vue双向数据绑定问题
        1. vue是MVVM模型,vueObserver 数据监听器,把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象所有的属性,并使用Object.define ...