Description

人们选择手机号码时都希望号码好记、吉利。比如号码中含有几位相邻的相同数字、不含谐音不吉利的数字等。手机运营商在发行新号码时也会考虑这些因素,从号段中选取含有某些特征的号码单独出售。为了便于前期规划,运营商希望开发一个工具来自动统计号段中满足特征的号码数量。
工具需要检测的号码特征有两个:号码中要出现至少3个相邻的相同数字,号码中不能同时出现8和4。号码必须同时包含两个特征才满足条件。满足条件的号码例如:13000988721、23333333333、14444101000。而不满足条件的号码例如:1015400080、10010012022。
手机号码一定是11位数,前不含前导的0。工具接收两个数L和R,自动统计出[L,R]区间内所有满足条件的号码数量。L和R也是11位的手机号码。

Input

输入文件内容只有一行,为空格分隔的2个正整数L,R。
10^10 < = L < = R < 10^11

Output

输出文件内容只有一行,为1个整数,表示满足条件的手机号数量。

Sample Input

12121284000 12121285550

Sample Output

5

样例解释

满足条件的号码: 12121285000、 12121285111、 12121285222、 12121285333、 12121285550


数位DP,维数太多不想多说了

维护当前第几位,上一位填的数,上上位填的数,是否出现过三连,是否出现过4,是否出现过8,是否到达上限

然后乱搞
注意特判一下首位不能为0就好了


#include<bits/stdc++.h>
using namespace std;
#define LL long long
LL dp[12][11][11][2][2][2][2];
LL p[20];
LL dfs(LL len,LL las,LL llas,LL thri,LL has4,LL has8,LL up){
if(len==10&&las==0)return 0;
if(!len)return thri;
if(dp[len][las][llas][thri][has4][has8][up])
return dp[len][las][llas][thri][has4][has8][up];
LL r=up?p[len]:9,res=0;
for(LL i=0;i<=r;i++)
if(!(i==4&&has8)&&!(i==8&&has4))
res+=dfs(len-1,i,las,thri||(i==las&&i==llas),has4||i==4,has8||i==8,up&&i==r);
return dp[len][las][llas][thri][has4][has8][up]=res;
}
LL solve(LL t){
memset(dp,0,sizeof(dp));
LL len=0;
while(t){
p[++len]=t%10;
t/=10;
}
return dfs(len,0,0,0,0,0,1);
}
int main(){
LL a,b;cin>>a>>b;
cout<<solve(b)-solve(a-1);
return 0;
}

最新文章

  1. 整数转IP地址
  2. Selenium 功能总结大集合
  3. 自定义Dialog宽度占满屏幕
  4. js填写银行卡号,每隔4位数字加一个空格
  5. PHP魔术方法小结.md
  6. Fixflow引擎解析(一)(介绍) - Fixflow开源流程引擎介绍
  7. 手机天猫nba项目总结
  8. angular smart-table组件如何定制化之初步研究
  9. python掉微信api
  10. py3+requests+urllib+bs4+threading,爬取斗图图片
  11. Git:多人推送/抓取分支事项
  12. 同时绑定onpropertychange 和 oninput 事件,实时检测 input、textarea输入改变事件,支持低版本IE,支持复制粘贴
  13. NGINX: 统计网站的PV、UV、独立IP
  14. linux系统编程之信号(五):信号集操作函数,信号阻塞与未决
  15. &quot;字符串&quot;经过strip 之后还是字符串, 而&quot;字符串&quot;经过split 分开后,就变成了一个列表[&quot;x&quot;,&quot;xx&quot;,&quot;xxx&quot;]
  16. linux环境下mysql默认是区分表名大小写的
  17. idea中JDK失效
  18. 安装部署Apache Hadoop (完全分布式模式并且实现NameNode HA和ResourceManager HA)
  19. jquery插件制作教程 txtHover(转载)
  20. DOM扩展学习笔记

热门文章

  1. Devops 到底是什么?
  2. 一些常用的CDN列表
  3. js中中括号,大括号使用详解
  4. IntelliJ IDEA 左侧显示/展开类中的方法
  5. Ubuntu 14.04配置虚拟主机
  6. 服务器22端口连接超时 ssh: connect to host *** port 22: Operation timed out
  7. [Tomcat 部署问题] Undeployment Failure could not be redeployed ...
  8. 第三天 RHEL7-Unix/Linux系统 介绍
  9. asp.net服务器上无法发送邮件的问题
  10. 通过fork进程爆破canary