不要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. 【NOIP2015】提高组D1 解题报告

    P1978神奇的幻方 Accepted 描述 幻方是一种很神奇的 N ∗ N 矩阵:它由数字 1,2,3, … … , N ∗ N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N 为奇数时 ...

  2. STL 自学

    STL 一.vector动态数组 1 包含头函数 #include<vector> 2 函数的声明: vector<int> v; vector<int> v[ma ...

  3. Easy UI 遮罩(MASK)

    From :http://blog.csdn.net/luminji/article/details/16984839 Easy UI 的各类控件有些带了遮罩功能,如 DataGrid,可以这样使用: ...

  4. Codeforces 235C

    题目大意: 给定一个字符串,接下来再给n个字符串,求原字符串中含有多少个当前给定字符串的循环同构体的字符串的个数 以初始字符串构建后缀自动机,在自动机上前进的时候,比如当前需要匹配的字符串为aba,到 ...

  5. Cocoapods的安装与使用

    一.安装 1.CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.OS X系统默认已经可以运行Ruby了,因此我们只需执行以下命令: sudo gem install cocoa ...

  6. [转]Vimium快捷键

    from: http://www.cppblog.com/deercoder/archive/2011/10/22/158886.html 今天下午折腾了一下Chrome下面的一个插件Vimium的使 ...

  7. JS获取上传文件的名称、格式、大小

    <input id="File1" type="file" onchange="checkFile(this)" /> 方式一) ...

  8. hdu4597 区间dp

    //Accepted 1784 KB 78 ms //区间dp //dp[l1][r1][l2][r2] 表示a数列从l1到r1,b数列从l2到r2能得到的最大分值 // #include <c ...

  9. declare 关键字在Oracle中的应用。

    一般用在trigger或匿名存储过程中使用.如 declare a number;begina:=1;end;

  10. hello iic

    刚刚终于弄出来了这个.发现自己很多问题. 一 mian函数 #include "led.h"#include "delay.h"#include "s ...