题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Problem Description
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。
杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
不吉利的数字为所有含有4或62的号码。例如:
62315
73418
88914
都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。
 
Input
输入的都是整数对n、m(0<n≤m<1000000),如果遇到都是0的整数对,则输入结束。
 
Output
对于每个整数对,输出一个不含有不吉利数字的统计个数,该数值占一行位置。
 
Sample Input
1 100
0 0
 
Sample Output
80
 
题解:
属于简单的数位DP题目。
我们把定义:
dp[pos][0]:前一位不是6的,所有长度为pos的数(没有上界限制)中,不含4不含62的数,共有几个。
dp[pos][1]:前一位是6的,所有长度为pos的数(没有上界限制)中,不含4不含62的数,共有几个。
(例如:dp[1][0] = 9,即0,1,2,3,5,6,7,8,9九个;
    而dp[1][1] = 8,即0,1,3,5,6,7,8,9八个,因为前一位是6,当前位不能选择2。)
 
然后我们从高位往低位进行DFS,反向往上逐步求出dp[pos][sta],最终得到答案(这里的具体流程和模板可以参考《数位dp总结 之 从入门到模板》);
 
AC代码:
#include<bits/stdc++.h>
using namespace std;
int dig[];
int dp[][]; int dfs(int pos,int pre,bool sta,bool limit)
{
//printf("现在求 pos=%d pre=%d sta=%d limit=%d\n",pos,pre,sta,limit);
if(pos==) return ;
if(!limit && ~dp[pos][sta])
{
//printf("已算好dp[%d][%d]=%d\n",pos,sta,dp[pos][sta]);
return dp[pos][sta];
} int up=limit?dig[pos]:;
int ans=;
for(int i=;i<=up;i++)
{
if(i==) continue;
if(pre== && i==) continue;
ans+=dfs(pos-,i,i==,limit && i==up);
} if(!limit)
{
//printf("求得dp[%d][%d]=%d (无上界限制)\n",pos,sta,ans);
dp[pos][sta]=ans;
} //printf("对于 pos=%d pre=%d sta=%d limit=%d,返回 %d\n",pos,pre,sta,limit,ans);
return ans;
}
int solve(int x)
{
int pos=;
while(x)
{
dig[++pos]=x%;
x/=;
}
return dfs(pos,,,);
} int main()
{
int l,r;
while(scanf("%d%d",&l,&r) && (l!= || r!=))
{
memset(dp,-,sizeof(dp));
printf("%d\n",solve(r)-solve(l-));
}
}

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 参考博客:https://www.cnblogs.com/HDUjackyan/p/914215 ...

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

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

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

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

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

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

  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)

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

  8. HDU 2089 不要62【数位DP入门题】

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

  9. hdu 2089 不要62--数位dp入门

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

随机推荐

  1. WAF Bypass 笔记(SQL注入篇)

    0x01 背景 waf Bypass 笔记 0x02 服务器特性 1.%特性(ASP+IIS) 在asp+iis的环境中存在一个特性,就是特殊符号%,在该环境下当们我输入s%elect的时候,在WAF ...

  2. 使用tinyproxy搭建http代理

    一.前言   二.搭建环境 * Linux laptop 2.6.32-45-generic #100-Ubuntu SMP Wed Nov 14 10:41:11 UTC 2012 i686 GNU ...

  3. C++ template —— 动多态与静多态(六)

    前面的几篇博文介绍了模板的基础知识,并且也深入的讲解了模板的特性.接下来的博文中,将会针对模板与设计进行相关的介绍.------------------------------------------ ...

  4. Hadoop计算平均值【转】

    file1.txt a 1b 2a 3b 3a 5b 7c 3c 5 file2.txt a 1b 7c 5a 1c 3 结果: a 2.2b 4.75c 4.0 代码: package org.ap ...

  5. Java bean中布尔类型使用注意

    JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的Java类. JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolea ...

  6. ASP/SQL 注入天书

    引言 随着 B/S 模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据 ...

  7. @OneToMany、@ManyToOne以及@ManyToMany讲解

    一.一对多(@OneToMany)1.单向一对多模型假设通过一个客户实体可以获得多个地址信息.对于一对多的实体关系而言,表结构有两种设计策略,分别是外键关联和表关联.(1) 映射策略---外键关联在数 ...

  8. 【WEB前端系列之CSS】CSS3动画之Transform

    前言 Transform字面上是变形,改变的意思,在CSS3中transform主要包括如下几种 旋转rotate 扭曲skew 缩放scale 移动translate 矩形变形matrix tran ...

  9. css案例 - 评分效果的星星✨外衣

    纳尼?什么星星外衣?好,直接上图比较能说清楚: 仔细看会发现规律:可以根据百分比/分值动态改变高亮星星的个数. 分步骤图: 这种效果,如果遇到一分一个星,没有半星(或者有也可以,直接加一个半星的类名) ...

  10. 如何快速打开.iso文件(不借助专门的工具)

    如何快速打开.iso文件(不借助专门的工具) 把.iso文件重命名为.rar文件,然后解压即可