思路:

详解

数位DP入门题dp[pos][sta],pos代表当前位数是第几位,sta代表当前状态,因为题目中只要不出现64,所以当前状态只分为两种:前一位是6或不是。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<map>
#define ll long long
using namespace std;
const int N = 1000000+5;
int dp[10][2],a[10];
int dfs(int pos,int pre,int sta,bool limit){ //pos当前位数,pre上一个数,sta代表前一位是否是6,limit代表是否有上限
if(pos == -1) return 1;
if(!limit && dp[pos][sta] != -1) //对整个数字没有上限限制并且之前已经算过同种情况直接返回记忆值
return dp[pos][sta];
int up = limit? a[pos] : 9; //有限制则取规定上限否则取9
int tmp = 0;
for(int i = 0;i <= up;i++){
if(pre == 6 && i == 2) continue;
if(i == 4) continue;
tmp += dfs(pos-1,i,i == 6,limit && i == up); //这里的limit条件为之前所有数位都是上限
}
if(!limit) dp[pos][sta] = tmp;    //保存
return tmp;
}
int solve(int x){
int pos = 0;
while(x){ //取位数
a[pos++] = x % 10; //得到每个数位上限
x /= 10;
}
return dfs(pos-1,-1,0,true); //从最高位开始分析
}
int main(){
int n,m;
while(scanf("%d%d",&n,&m) && n+m){
memset(dp,-1,sizeof(dp));
printf("%d\n",solve(m) - solve(n-1));
}
return 0;
}

HDU 2089 不要62 (数位DP)题解的更多相关文章

  1. Hdu 2089 不要62 (数位dp入门题目)

    题目链接: Hdu 2089 不要62 题目描述: 给一个区间 [L, R] ,问区间内不含有4和62的数字有多少个? 解题思路: 以前也做过这个题目,但是空间复杂度是n.如果数据范围太大就GG了.今 ...

  2. HDU 2089 - 不要62 - [数位DP][入门题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...

  3. [hdu 2089] 不要62 数位dp|dfs 入门

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意:求[n, m]区间内不含4和62的数字个数. 这题有两种思路,直接数位dp和dfs 数位d ...

  4. HDU 2089 不要62 数位DP模板题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 参考博客:https://www.cnblogs.com/HDUjackyan/p/914215 ...

  5. HDU 2089 不要62(数位DP&#183;记忆化搜索)

    题意  中文 最基础的数位DP  这题好像也能够直接暴力来做   令dp[i][j]表示以 j 开头的 i 位数有多少个满足条件 那么非常easy有状态转移方程 dp[i][j] = sum{ dp[ ...

  6. hdu 2089 不要62 数位dp

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  7. hdu 2089 不要62 (数位dp基础题)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. hdu 2089不要62 (数位dp)

    Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...

  9. hud 2089 不要62 (数位dp)

    #include<stdio.h> #include<string.h> #include<math.h> #define max 10 ]; int number ...

  10. HDOJ题目2089 不要62(数位DP)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

随机推荐

  1. 洛谷P3243 [HNOI2015]菜肴制作 拓扑排序+贪心

    正解:拓扑排序 解题报告: 传送门! 首先看到它这个约束就应该要想到拓扑排序辣QwQ 首先想到的应该是用优先队列代替队列,按照节点编号排序 然后也很容易被hack:<5,1> 正解应为5, ...

  2. __getattr__,settr

    __getattr__  如果属性查找在实例以及对应的类中(通过__dict__)失败, 那么会调用到类的__getattr__函数, 如果没有定义这个函数,那么抛出AttributeError异常. ...

  3. 腾讯云的云数据库MYSQL配置

    腾讯云的云数据库MYSQL配置

  4. jmeter连接mysql数据库报错Cannot create PoolableConnectionFactory (Could not create connection to database server.)

    今天在学习jmeter的jdbc取样器,发现在配置完JDBC Connection Configuration和JDBC Request后,点击运行.在查看结果树中显示响应数据: Cannot cre ...

  5. js-jquery-SweetAlert【二】配置方法

    一.配置 Argument Default value 含义   Description title null (required) 模态对话框的标题.它可以在参数对象的title参数中设置,也可以在 ...

  6. vue学习之四组件系统

    vue.js既然是框架,那就不能只是简单的完成数据模板引擎的任务,它还提供了页面布局的功能.本文详细介绍使用vue.js进行页面布局的强大工具,vue.js组件系统. 一.Vue.js组件系统 每一个 ...

  7. CentOS6.5安装Redis数据库

    1.以安装redis2.8.19为例 下载安装包:http://redis.io tar zxvf redis-2.8.19.tar.gz #解压 cd redis-2.8.19 #进入解压后的文件夹 ...

  8. MVC左边导航,左边内容变,通过AJAX方法实现

    前台: @{ ViewBag.Title = "爱湛师-个人信息"; Layout = "~/Views/Shared/DefaultMaster.cshtml" ...

  9. Leetcode: Merge k Sorted List

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 参 ...

  10. web前端面试小结(1)

    两天大概面试了4家,有电面也有F2F,现将面试中的问题大概汇总下,一方面了解自己的不足,一方面用来勉励自己后面面试加油! 答案网上都有,就不一一写在这里了,后面有时间会把下面的问题分别拉出来详述. 1 ...