http://acm.hdu.edu.cn/showproblem.php?pid=2089

这道题跟Bomb(http://www.cnblogs.com/sjy123/p/3247731.html)基本一样,不过多了一个不要包含4的条件,因为数值的范围不大,本来这道题完全可以暴力完成的,不过既然刚学了数位DP,就用一用吧。

------------------------------------------------分割线-------------------------------------------------

状态转移方程

dp[i][0]=dp[i-1][0]*9-dp[i-1][1];                            //不含62和4
dp[i][1]=dp[i-1][0];                                               //不含62和4,但2结尾
dp[i][2]=dp[i-1][2]*10+dp[i-1][1]+dp[i-1][0];         //含62和4

不解释了,得出的过程了Bomb基本一样

----------------------------------------------分割线------------------------------------------------

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
int dp[20][3];
int a[20];
int fun(int len)
{int i,flag=0,sum=0,last=0;   //last表示一轮的位,即这轮的高一位 for(i=len;i>=1;i--){               sum+=dp[i-1][2]*a[i];        if(flag)                   sum+=dp[i-1][0]*a[i]; if(!flag&&a[i]>6)           //本轮最高位大于6,需要加上低一位以2开头的数 sum+=dp[i-1][1];if(!flag&&last==6&&a[i]>2)  //上一轮最高位等于6,要加上这轮的以2开头的个数 sum+=dp[i][1];if(!flag&&a[i]>4)            //本轮最高位大于4,所以上一轮不含的数,这轮加上去 sum+=dp[i-1][0];if((last==6&&a[i]==2)||a[i]==4)flag=1; last=a[i];      }return sum;
}
int main()
{int i,len,n,m,sum1,sum2,sum,t;memset(dp,0,sizeof(dp));                      //初始化 dp[0][0]=1;for(i=1;i<21;i++)                            //算出彼此关系,下面计算时,直接调用
     {     dp[i][0]=dp[i-1][0]*9-dp[i-1][1];                 //不含62和4 dp[i][1]=dp[i-1][0];                              //不含62和4,但2结尾 dp[i][2]=dp[i-1][2]*10+dp[i-1][1]+dp[i-1][0];     //含62和4
     }while(scanf("%d%d",&n,&m)!=EOF){if(n==0&&m==0)  break;         sum1=0;t=m-n+1;                         //n到m区间的总个数 len=0;           memset(a,0,sizeof(a));while(n){a[++len]=n%10;n=n/10;}a[len+1]=0;sum1=fun(len);sum2=0;len=0;           memset(a,0,sizeof(a));m++;while(m){a[++len]=m%10;m=m/10;}a[len+1]=0;sum2=fun(len);printf("%d\n",t-(sum2-sum1));}// system("pause");
}

这面是暴力的作法,百度的。

#include<iostream>
#include<stdio.h>
using namespace std;
int a[1000001];
int main()
{  int n,m;   a[0]=1;  int i; for(i=1;i<=1000000;i++) {      if(i%10!=4&&i%100!=62&&a[i/10]==1)      a[i]=1;      else a[i]=0;  }  while(cin>>n>>m,n||m){      int count=0;     for(int i=n;i<=m;i++)      {          if(a[i]==1) count++;      }     cout<<count<<endl;  }
}

View Code

转载于:https://www.cnblogs.com/sjy123/p/3248217.html

[HDU]2089不要62相关推荐

  1. HDU - 2089 不要62 【暴力打表】【数位DP】

    不要62 HDU - 2089 题意 求区间[n,m]之间有多少个数字不含4或者连续的62 解法1 由于数据范围是0~1e6,所以直接暴力判断每一位数字是否含有4或者62,然后求前缀和即可 #incl ...

  2. hdu 2089 不要62【数位dp】

    HDU 2089 求给定区间内不含62和4的数的个数. 数位dp入门.从这里我清楚了一些数位dp的用法.比如limit是判断是否达到上界,而且需要判断(!limit)..比如若题目要求不含11的个数, ...

  3. HDU 2089 不要62 数位DP

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2089 题目描述: 给定一个区间, 让你求这个区间中所有不带62 或 4 的数的个数 解题思路: 很明 ...

  4. HDU 2089 不要62(数位DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意 求一个区间内,不出现4和连续的62的数的个数. 分析 可以暴力打表.也可以数位DP. 设: ...

  5. HDU - 2089 不要62 【数位DP】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2089 思路 一切都在代码注释中 AC代码 #include <cstdio> #inclu ...

  6. HDU 2089 不要62

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

  7. 不要62 HDU - 2089【数位dp】

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

  8. Hdu 2089-不要62 数位dp

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others)    Me ...

  9. hdu 2089 数位dp入门

    HDU 2089 题意:中文题 思路:数位dp入门题 AC代码: #include "iostream" #include "string.h" #includ ...

最新文章

  1. C++ open 打开文件(含打开模式一览表)
  2. Oracle数据库学习(一)安装和简单使用
  3. win10前置耳机插孔没声音_音频服务未运行怎么办?win7和win10电脑没声音了恢复方法...
  4. python运维脚本部署jdk_基于Java/Python搭建Web UI自动化环境
  5. 使用maven插件构建docker镜像
  6. stl list 删除元素_删除所有出现的元素,并从列表中删除一些特定的元素。 C ++ STL...
  7. android responsebody转json_SpringBoot 项目开发是如何返回 json 数据以及数据封装
  8. Httpd-2.2.0虚拟主机目录权限问题
  9. dz php表单发送邮件,php 发送邮件
  10. 亚马逊云科技成为Meta关键长期战略云服务提供商;触宝科技延伸业务布局聚焦元宇宙 | 全球TMT...
  11. 阿里巴巴-码出高效+阿里巴巴Java开发手册(华山版)PDF下载
  12. django+echarts数据可视化(NBA球队数据可视化01)!
  13. 怎样绘制漂亮的统计图表|不一样的折线图
  14. 软件测试工程师要学习的基础知识,你知道多少?
  15. mysql handlers_MySQL handler相关状态参数解释
  16. bash内置文档(ubuntu20.10)
  17. 微信小程序分页功能(上拉触底事件)
  18. MySql------存储引擎(InnoDB,ISAM)
  19. 桌面下面有计算机 网络,台式电脑怎么连接手机网络 桌面下方的任务栏会自动弹出...
  20. 人脸检测算法之 S3FD

热门文章

  1. 6、Dcoker 容器数据卷用DockerFile添加
  2. mysql 当前记录集不支持书签_存储过程 分页。当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。...
  3. 周五话分析 | 两个指标解读用户千百种离开的姿势(跳出率与退出率)
  4. LBS突围:从微信到微博
  5. AJAX请求和跨域请求详解(原生JS、Jquery)
  6. 测试并发应用(三)监控Executor框架
  7. hdu1025 Constructing Roads In JGShining#39;s Kingdom (nlogn的LIS)
  8. C语言实现小时候经常做的智力测试题
  9. 杭州优步uber司机第三组奖励政策
  10. cocos2d-html5 onEnter init ctor构造函数 ----js特有特性(和c++有一点不一样)