不要62

题目大意:给你一个区间,算出该区间里不含62或4的数的个数

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

 /*
// 暴力就可以过了。。。
#include<stdio.h>
#define N 1000000
int sum[N];
bool fun(int x)
{
bool flag=0;
while(x)
{
int tmp=x%10;
if(tmp==4) return 0;
else if(tmp==2) flag=1;
else if(tmp==6&&flag==1) return 0;
else flag=0;
x/=10;
}
return 1;
}
void Init()
{
sum[0]=0;
for(int i=1;i<N;i++)
{
if(fun(i)==1) sum[i]=sum[i-1]+1;
else sum[i]=sum[i-1];
}
}
int main()
{
Init();
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
printf("%d\n",sum[m]-sum[n-1]);
}
return 0;
}
*/
#include<stdio.h>
int dp[][]={};
//dp[i][0] 数的长度为 i ,且不含不吉利数字 ( 不含62和4 )
//dp[i][1] 数的长度为 i ,不含不吉利数字且最高位为2
//dp[i][2] 数的长度为 i ,存在不吉利数字 void Init()
{
dp[][]=;
for(int i=;i<;i++)
{
// i位的不含不吉利数字的数的个数为 i-1位的乘以 9 (去掉4),再减去 i-1 位时吉利的且最高位为2的数的个数(6)
dp[i][]=dp[i-][]*-dp[i-][];
// i位的最高位为2的吉利数个数和i-1位的吉利数的个数相同
dp[i][]=dp[i-][];
// i位的不吉利数为 i-1位不吉利数的个数*10 + i-1位吉利数的个数(4)+ i-1位最高位为2的吉利数的个数
dp[i][]=dp[i-][]*+dp[i-][]+dp[i-][];
}
}
int solve(int x)
{
int c[],co=,n=x,s=; //s为不吉利的数的个数
while(x)
{
c[co++]=x%;
x/=;
}
c[co]=;
bool flag=;
// 从最高位往后推
for(int i=co-;i>;i--)
{
s+=c[i]*dp[i-][]; //后面造成的不吉利数
if(flag==) //前几位已经出现了不吉利现象,也就是说后面不管是啥,都是不吉利的。
{
s+=c[i]*dp[i-][];
continue;
}
if(c[i]>) //第i位为4造成的不吉利数
s+=dp[i-][];
if(c[i+]==&&c[i]>)//第i+1位为6 第i位为2造成的不吉利数
s+=dp[i][];
if(c[i]>) //第i位为6造成的不吉利数
s+=dp[i-][];
if(c[i]==||c[i+]==&&c[i]==) flag=;
}
return n-s;
}
int main()
{
Init();
int l,r;
while(scanf("%d%d",&l,&r)!=EOF)
{
if(l==&&r==) break;
printf("%d\n",solve(r+)-solve(l));
}
return ;
}

hdu2089_不要62的更多相关文章

  1. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  2. P87LPC760/61/62/64/67/68/69/78/79芯片解密单片机破解价格

    NXP恩智浦P87LPC760/61/62/64/67/68/69/78/79芯片解密单片机破解 NXP LPC700系列单片机解密型号: P87LPC759.P87LPC760.P87LPC761. ...

  3. HDU2089 不要62[数位DP]

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

  4. Connection broken for id 62, my id = 70, error =

    启动费zokeeper失败,报错如下:Connection broken for id 62, my id = 70, error = 原因是因为zoo.cfg中server.id不正确. serve ...

  5. base64/62 加解密的实现。

    base64/62加解密代码下载地址: http://files.cnblogs.com/files/Kingfans/base64(62)加解密.zip base64: base62:

  6. /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’

    /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’/usr/include/linux/types.h:13: erro ...

  7. [HDU2089]不要62

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

  8. NYOJ题目62笨小熊

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr4AAAK1CAIAAAChInrhAAAgAElEQVR4nO3dO3LjutaG4X8Szj0Qxx

  9. 62个Android Studio小技巧合集

    1书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除书签 ...

随机推荐

  1. 【Linux基础】linux下修改ls显示的时间格式

    1.修改ls显示格式 ls -l --time-style '+%Y/%m/%d %H:%M:%S' drwxr-x--- edwetl edwetl // :: arc_test ls -l --t ...

  2. 百度统计api获取数据

    需求场景 想要了解每天多少人访问了网站,多少个新增用户,地域分布,点击了哪些页面,停留了多久,等等... 国内用的最多的就是百度统计吧,傻瓜式的注册然后插一段代码到项目里就行了. 最近也在自己的博客里 ...

  3. 设计模式のBridgePattern(桥接模式)----结构模式

    一.产生背景 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体 ...

  4. access数据库查找以及如果结果中存在多个匹配用户该怎么处理?

    查找用户的界面为: 首先对查找条件进行赋值: if (radioButton1.Checked) serMatchInfo = "用户姓名"; if (radioButton2.C ...

  5. 手把手丨我们在UCL找到了一个糖尿病数据集,用机器学习预测糖尿病(三)

    梯度提升: from sklearn.ensemble import GradientBoostingClassifier gb=GradientBoostingClassifier(random_s ...

  6. day25 Python四个可以实现自省的函数,反射

    python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数 下列方法适用于类和对象(一切皆对象,类本身也是一个对象) ...

  7. linux初次入门学习小结

    linux系统目录结构: 通过ls / 命令可以获得linux目录结构 bin boot dev etc home lib lib64 media mnt opt proc root sbin sel ...

  8. Eclipse下关于The serializable class UsersServlet does not declare a static final serialVersionUID field of type的警告

    The serializable class XXX does not declare a static final serialVersionUID field of type long seria ...

  9. c#简单的io

    读取路径判断文件是否存在,进行删除或者创建 简单的io using System; using System.Collections; using System.Collections.Generic ...

  10. Vue-插槽学习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...