不要62

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 34525    Accepted Submission(s): 12493

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
 
Author
qianneng
 
Source
 
题意:对于每个整数对,输出不含有不吉利数字“62”,“4”的统计个数
 
题解:数位dp处理
dp[i][2]  长度为i 含有不吉利数字的个数
dp[i][1]  长度为i 不含有不吉利数字但是高位的数字为“2”的个数
dp[i][0]  长度为i 不含有不吉利数字的个数
dp[i][2]=10*dp[i-1][2]+dp[i-1][1]+dp[i-1][0];//含有 考虑当前i位为“4” “6”
dp[i][1]=dp[i-1][0];
dp[i][0]=9*dp[i-1][0]-dp[i-1][1];//不含有考虑i位为“6”
 
 
 /******************************
code by drizzle
blog: www.cnblogs.com/hsd-/
^ ^ ^ ^
O O
******************************/
//#include<bits/stdc++.h>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<map>
#include<algorithm>
#include<queue>
#define ll __int64
using namespace std;
int n,m;
int dp[][];
void init()
{
memset(dp,,sizeof(dp));
dp[][]=;
for(int i=;i<=;i++)
{
dp[i][]=*dp[i-][]+dp[i-][]+dp[i-][];//有
dp[i][]=dp[i-][];
dp[i][]=*dp[i-][]-dp[i-][];//没有
}
}
int fun(int ex)
{
int a[];
memset(a,,sizeof(a));
int len=;
int ans=;
int flag=;
int exm=ex;
int last=;
while(ex)
{
a[len]=ex%;
len++;
ex/=;
}
for(int i=len-;i>=;i--)
{
ans=ans+a[i]*dp[i-][];
if(flag)
ans=ans+a[i]*dp[i-][];
else
{
if(a[i]>)
ans=ans+dp[i-][];
if(a[i]>)
ans=ans+dp[i-][];
if(a[i+]==&&a[i]>)
ans=ans+dp[i][];
}
if(a[i]==||(last==&&a[i]==))
flag=;
last=a[i];
}
return exm-ans;
}
int main()
{
init();
while(scanf("%d %d",&n,&m)!=EOF)
{
if(n==&&m==)
break;
printf("%d\n",fun(m+)-fun(n));
}
return ;
}
 
 字符串处理
itoa()处理 最新的codeblocks不能编译成功 devc++编译成功
将整型转化为字符型 使用strstr()函数
 /******************************
code by drizzle
blog: www.cnblogs.com/hsd-/
^ ^ ^ ^
O O
******************************/
#include<bits/stdc++.h>
using namespace std;
char a[];
int b[];
int visited[];
int main()
{
int n,re,m;
memset(visited,,sizeof(visited));
for(int i=; i<=; i++)
{
memset(a,,sizeof(a));
itoa(i,a,);
if(strstr(a,"")==NULL&&strstr(a,"")==NULL)
{
re++;
visited[i]=;
}
b[i]=re;
}
while(cin>>n>>m)
{
if(n==&&m==)
break;
if(visited[n]==)
cout<<b[m]-b[n]+<<endl;
else
cout<<b[m]-b[n]<<endl;
}
return ;
}

HDU 2089 数位dp/字符串处理 两种方法的更多相关文章

  1. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  2. hdu:2089 ( 数位dp入门+模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位dp的模板题,统计一个区间内不含62的数字个数和不含4的数字个数,直接拿数位dp的板子敲就行 ...

  3. HDU 3555 Bomb(数位DP模板啊两种形式)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Problem Description The counter-terrorists found ...

  4. HDU 2089 数位dp入门

    开始学习数位dp...一道昨天看过代码思想的题今天打了近两个小时..最后还是看了别人的代码找bug...(丢丢) 传说院赛要取消 ? ... 这么菜不出去丢人也好吧~ #include<stdi ...

  5. hdu 2089 数位dp

    链接:https://vjudge.net/problem/23625/origin 中文,题目不用说了. 其实这题的数据很小,所以直接暴力也可以过,但是还是要学会数位dp,因为并不是每一题的数据都会 ...

  6. php反转输出字符串(两种方法)

    //第一种方法 function fz($a){ echo strrev($a); } fz('adfjdlks'); echo '<br />';   //第二种方法 function ...

  7. 不要62(HDU 2089数位dp入门)

    题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个. 分析:dp[i][f]数字表示不含 4 和 62的前提下,剩余长度为 len ,首位是否为 6 的个数. #include < ...

  8. HDU - 2089 数位DP 初步

    中文题目,不要62和4 从高位往低位DP,注意有界标志limit的传递 dp2记忆有界情况下的计数结果,据说用处不大 我所参考的入门文章就是半搜索(有界)半记忆(无界)的 进阶指南中提出dfs维度有多 ...

  9. 杭电hdu 2089 数位dp

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

随机推荐

  1. wsgi协议

    用来为server程序和app/framework程序做连接桥梁的,使server和app/framework各自发展,任意组合 上图是python3.4标准库里面,关于wsgiserver的实现.从 ...

  2. Cisco IOS Security command Guide

    copy system:running-config nvram:startup-config : to save your configuration changes to the startup ...

  3. [windows驱动]标准驱动例程

    [注]routine:例行程序. 1.标准驱动例程简介: 每一个内核态驱动程序都是由一系列系统定义的,标准的驱动例程组成.内核态驱动在这些标准例程中通过调用系统提供的驱动支持函数处理I/O请求包.为了 ...

  4. IBM RSA 的语言设置

    右键 IBM Rational software Architect for websphere software 快捷方式 ----> 打开文件位置 在 eclipse.ini 文件中添加参数 ...

  5. Android-Java第一课 内部类 (inner Class)

    总所周知,Android系统基于Linux,内核和驱动都是使用C/C++语言做开发,但应用层一般使用 JAVA 语言开发.今天我们就来学习一下java的内部类. 内部类: 是一个编译时的概念,一旦编译 ...

  6. iOS: 枚举类型 enum,NS_ENUM,NS_OPTIONS

    一般情况下,我们采用C风格的enum关键字可以定义枚举类型. enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFro ...

  7. Ubuntu 14.10 下安装Sublime Text 3,注册码,中文输入法

    1 下载Sublime Text 3,网址http://www.sublimetext.com/3 2 双击deb安装 3 因为需要需要付费,输入下面的注册码,下面的注册码,来自百度,亲测可行 Sub ...

  8. C++11 实现 argsort

    看python发现有这么个api,感觉很实用,想着stl里会不会有这个呢?查了半天毫无结果.于是用lambda自己实现了下. 以vector为例 template<typename T> ...

  9. 过期邮件替换SQL

  10. swift简介

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...