手机号码

数位DP模板题

记忆化搜索:

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define int long long
int L,R,Maxx[15],dp[15][2][15][2][2][2];
int dfs(int len,bool ok,int last,bool same,bool four,bool eight,bool shangxian)//剩余的位数,是否已经有三个连续相同的数字,上一个数字,上一个数是否与上上个数字相同,是否有4,是否有8,是否是上限值
{if(len==0) return (int)ok;if(!shangxian&&dp[len][ok][last][same][four][eight]!=-1)return dp[len][ok][last][same][four][eight];int M=shangxian?Maxx[len]:9,cnt=0;for(int i=0;i<=M;i++){if((four&&i==8)||(eight&&i==4)||(len==11&&i==0)) continue;cnt+=dfs(len-1,ok||(same&&last==i),i,last==i,four||i==4,eight||i==8,shangxian&&i==M);}if(!shangxian) dp[len][ok][last][same][four][eight]=cnt;return cnt;
}
int solve(int x){int cnt=0;memset(dp,-1,sizeof(dp));while(x){Maxx[++cnt]=x%10;x/=10;}return dfs(11,0,-1,0,0,0,1);
}
#undef int
int main()
#define int long long
{scanf("%lld%lld",&L,&R);int B=solve(L-1);int A=solve(R);printf("%lld\n",A-B);return 0;
} 

转载于:https://www.cnblogs.com/yjkhhh/p/9261597.html

【洛谷P4124】[CQOI2016]手机号码相关推荐

  1. 洛谷P4124 [CQOI2016]手机号码

    凭感觉,要计算区间 [ L , R ] [L,R] [L,R]这些而且数目很大的,对数字位数有限制的,我们会考虑数位dp的模型 考虑状态 d p ( c u r , t o p , p r e 1 , ...

  2. P4124 [CQOI2016]手机号码

    链接:https://www.luogu.org/problemnew/show/P4124 题目描述 人们选择手机号码时都希望号码好记.吉利.比如号码中含有几位相邻的相同数字.不含谐音不吉利的数字等 ...

  3. 【题解】P4124 [CQOI2016]手机号码

    \(Desciption:\) 给出区间 \([L,R]\) ,求区间内满足没有 \(4\) 和 \(8\) 同事出现并且一定要有三位连续的相同. 并且一定是十一位的电话号码. \(Sample\) ...

  4. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  5. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  6. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  7. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  8. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  9. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

最新文章

  1. iphonex重量_精仿苹果iPhone X手机配置介绍
  2. 大厂首发!java敏捷开发模式面试题
  3. 前端Yslow的23个优化原则
  4. 常见三维文件格式之STL
  5. 深度学习的实用层面 —— 1.10 梯度消失与梯度爆炸
  6. 我爱计算机视觉干货集锦分类汇总(2019年5月7日)
  7. python 类和对象_面向对象的编程思想和Python的类,访问和属性,继承
  8. 利用反射实现工厂模式
  9. 如何看懂蓝桥杯单片机(CT107S)原理图
  10. 远程访问大华摄像头_通过WEB调用大华网络摄像头
  11. 【IDEA双击快捷方式无法打开】
  12. 彻底理解connection timeout
  13. 东华大学(C++)OJ题目收集(代码详解版)
  14. 数据库系统概念 - 数据模型,关系模型,关系,候选码,主码,外码
  15. 爱沙尼亚LHV银行矢志不渝,设立区…
  16. wx2540h配置教程_H3C wx3000系列配置
  17. 数据结构PTA习题:基础实验4-2.7 修理牧场 (25分)
  18. android开发之上传头像
  19. Tibco Designer -- 时间日期转换
  20. 子豪兄教你在树莓派上安装OpenCV

热门文章

  1. 首席信息安全官的未来将何去何从?
  2. Web Service 与 RESTful Web Service比较
  3. 谈谈:.Net中的序列化和反序列化
  4. 注意职场“十不要”,让你少奋斗30年
  5. English学习资料大全
  6. 关于wordpress的一些基础知识+安装流程+使用说明(还没整理完)
  7. cannot find or load main class org.apache.flink.api.scala.FlinkShell
  8. softmax with cross-entropy loss求导(转载+细节整理)
  9. nltk英文词性标注
  10. “QMYSQL: Unable to allocate a MYSQL object“ 解决方法