惊奇地发现今天居然和dalao的题单重了不少23333333333333

这是我第一次做数位dp,感觉这个题目还是比较兹磁的

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int l,r,dp[20][15],a[20];
int dfs(int pos,int las,int fl,bool flag)//pos是当前位置,las是上次选的那个数,fl判断上次选的数是否为6,flag判断pos位上是否有枚举限制
{if(pos==0)//答案成立,返回1 return 1;if(!flag&&dp[pos][las]!=-1)//如果flag==1的时候也返回,那么像213的时候会使答案偏大 return dp[pos][las];int ding=(flag)?a[pos]:9;//判断这一位上是否有限制最大能枚举的数 int re=0;for(int i=0;i<=ding;i++){if(i==4||(las==6&&i==2))//不能出现4或者62 continue;re+=dfs(pos-1,i,i==6,flag&&i==a[pos]);}if(!flag)//如果flag==1说明这一位有限制,并不完全将第pos位上一次选的las的状态完全包含,所以不能赋值 dp[pos][las]=re;return re;
}
int solve(int x)
{int pos=0;while(x>0)//先拆分成一位位的数字 a[++pos]=x%10,x/=10;return dfs(pos,-1,0,1);//flag初始设为0是因为数位长度+1位确实是0
}
int main()
{memset(dp,-1,sizeof(dp));//每次输入的只是不同的数据范围,但是不会影响dp数组的答案,所以只初始化一遍就好 while(~scanf("%d%d",&l,&r)){if(l==0&&r==0)break;printf("%d\n",solve(r)-solve(l-1));//l也被包含在答案区间一部分
    }
}

转载于:https://www.cnblogs.com/Loi-dfkdsmbd/articles/7732564.html

【hdu2089】不要62相关推荐

  1. HDU2089 不要62【数位DP+记忆化搜索】

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

  2. hdu2089 不要62 数位dp

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

  3. HDU2089——不要62 (数位DP)

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

  4. [hdu2089]不要62(数位dp)

    题意:求a-b之间满足条件(不含4和62)的数的个数. 解题关键:数位dp入门题. 注意有无limit会出现冲突,所以limit==true的情况下需要直接进行暴力. dp[i][j]表示剩余长度为i ...

  5. ICPC程序设计题解书籍系列之九:罗勇军《算法竞赛入门到进阶》

    罗书<算法竞赛入门到进阶>题目一览 第1章 算法竞赛概述 HDU1000 HDU1089-HDU1096 A+B for Input-Output Practice (I)-(VIII)( ...

  6. 51Nod-1284 2 3 5 7的倍数【数位DP+记忆化搜索】

    1284 2 3 5 7的倍数  给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N = 10,只有1不是2 3 5 7的倍数. Input 输入1个数N(1 <= N &l ...

  7. 51Nod-1009 数字1的数量【数位DP+记忆化搜索】

    1009 数字1的数量  给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. ...

  8. 数位dp真·浅谈 By cellur925

    预警:由于是从$Vergil$学长那里和$Mathison$大神那里学来的,所以清一色记忆化搜索!qwq 巨佬的数位dp讲解(未来的咕咕日报头条): https://www.luogu.org/blo ...

  9. 不要62(HDU-2089)

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

最新文章

  1. Java并发 -- JMM
  2. js实现审批流_JavaScript实现审核流程状态的动态显示进度条
  3. 国内能打自动驾驶出租车了!行驶平稳还免费,首个量产车型开放道路试运营...
  4. JWT-基于token的认证方式
  5. 给Win7光盘添加PE3.0
  6. php下拉列表 二级 联动,PHP+Ajax实现二级联动下拉菜单!
  7. our happy ending(状压dp)
  8. 微软Window硬件大会(WinHEC)
  9. 黄金分割法与单峰函数求极值
  10. SonyZ2国行版L50t使用谷歌play服务安装谷歌四件套
  11. linux kylin 终端字体,安装Nerd Fonts字体
  12. 网页制作基础及HTML的笔记,《网页设计与制作项目教程》:网页制作基础知识笔记一...
  13. redis持久化(persistent)
  14. windowsxp下载python下载视频_Python 实现视频下载
  15. Linux性能优化——如何测试网络延迟
  16. 2548. 大胖子走迷宫 (时间bfs)
  17. 006-Sencha Cmd概论
  18. 大端和小端的区别和判断
  19. 抖音最后一面,问我Java 是如何实现线程间通信的?
  20. 服务器虚拟打印机为什么经常打打不,打印机虚拟论文,关于制作PDF打印服务器相关参考文献资料-免费论文范文...

热门文章

  1. 正则提取的url中的域名以及替换域名的方法 preg_match()和preg_replace()
  2. C#反射基础理解1(转)
  3. hdu 1176 馅饼
  4. 认识伪类元素:before和:after
  5. STL之函数对象和谓词
  6. Java各进制之间的转换
  7. 在一个数组中,如何确定所需元素在数组中的位置.
  8. 3 .6 .5 优化Ad-Hoc工作负载
  9. 简单使用ansible-playbook
  10. 【LeetCode-面试算法经典-Java实现】【002-Add Two Numbers (单链表表示的两个数相加)】...