不要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. 15.selenium_case01

    # 与百度首页交互 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait f ...

  2. ssm框架的整合搭建(一)

    一个转行菜鸟半年多工作的开始学习历程............ 我是自学,也是我的记录,我学习的见证,如果你有幸看见,不要吐槽,不足之处请指点,相互学习,谢谢!! 请一起共勉!!!!!!!! 使用技术: ...

  3. PHP 3 函数

    PHP 的真正力量来自它的函数:它拥有超过 1000 个内建的函数. PHP 用户定义函数 除了内建的 PHP 函数,我们可以创建我们自己的函数. 函数是可以在程序中重复使用的语句块. 页面加载时函数 ...

  4. (二 -4) 天猫精灵接入Home Assistant-自动发现Mqtt设备--传感器系列

    https://www.home-assistant.io/blog/2015/10/11/measure-temperature-with-esp8266-and-report-to-mqtt/ 最 ...

  5. 吴恩达课后作业学习2-week3-tensorflow learning-1-基本概念

    参考:https://blog.csdn.net/u013733326/article/details/79971488 希望大家直接到上面的网址去查看代码,下面是本人的笔记  到目前为止,我们一直在 ...

  6. 用return关键字实现1——100累加求和,返回总和并接收输出

    package com.Summer_0419.cn; /** * @author Summer * 用return关键字实现1——100累加求和,返回总和并接收输出 */ public class ...

  7. 请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”

    请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母.例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”.星期的英文单词如下表所示. 星期 ...

  8. pyQT4和pyQT5的主要模块介绍

    下面简单介绍一下pyQT4和pyQT5的主要模块 pyQT4 的主要模块 QtCore 模块包括了核心的非GUI功能,该模块用来对时间.文件.目录.各种数据类型.流.网址.媒体类型.线程或进程进行处理 ...

  9. jvm调优-从eclipse开始

    一.概述 什么是jvm调优呢?jvm调优就是根据gc日志分析jvm内存分配.回收的情况来调整各区域内存比例或者gc回收的策略:更深一层就是根据dump出来的内存结构和线程栈来分析代码中不合理的地方给予 ...

  10. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; impor ...