hdu2089_不要62
不要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的更多相关文章
- VS2015编译boost1.62
VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...
- P87LPC760/61/62/64/67/68/69/78/79芯片解密单片机破解价格
NXP恩智浦P87LPC760/61/62/64/67/68/69/78/79芯片解密单片机破解 NXP LPC700系列单片机解密型号: P87LPC759.P87LPC760.P87LPC761. ...
- HDU2089 不要62[数位DP]
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Connection broken for id 62, my id = 70, error =
启动费zokeeper失败,报错如下:Connection broken for id 62, my id = 70, error = 原因是因为zoo.cfg中server.id不正确. serve ...
- base64/62 加解密的实现。
base64/62加解密代码下载地址: http://files.cnblogs.com/files/Kingfans/base64(62)加解密.zip base64: base62:
- /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 ...
- [HDU2089]不要62
[HDU2089]不要62 试题描述 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就 ...
- NYOJ题目62笨小熊
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAr4AAAK1CAIAAAChInrhAAAgAElEQVR4nO3dO3LjutaG4X8Szj0Qxx
- 62个Android Studio小技巧合集
1书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处. 调用:Menu → Navigate → Bookmarks 快捷键: 添加/移除书签 ...
随机推荐
- 设计模式のMementoPattern(备忘录模式)----行为模式
一.产生背景 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态, ...
- Harbor是什么
第一次听到这个名字应该是2016年初的时候,那是在容器技术已经兴起的,各个容器管理平台正处于群雄逐鹿的时候,mesos.kubernetes.swarm等被国内外各个厂商用来作为容器的管理系统.这个时 ...
- js中arguments详解
在js中一切都是对象,连函数也是对象,函数名其实是引用函数定义对象的变量. 什么是arguments? 这个函数体内的arguments非常特殊,实际上是所在函数的一个内置类数组对象,可以用数组的[i ...
- Linux之RTOS学习
Linux之RTOS学习 RTOS: Real time operating system 系统选型 可选方案 RTLinux - FSMLabs, WindRiver Systems - http: ...
- 吴恩达课后作业学习2-week1-1 初始化
参考:https://blog.csdn.net/u013733326/article/details/79847918 希望大家直接到上面的网址去查看代码,下面是本人的笔记 初始化.正则化.梯度校验 ...
- conda install 出错
在下载包时出现下面的错误: userdeMBP:pytorch user$ conda install -n deeplearning matplotlib Solving environment: ...
- day23 Pythonpython 本文re模块
re模块用于对python的正则表达式的操作. 字符: . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配 ...
- Linux 实例如何开启 MySQL 慢查询功能
运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的.MySQL 自带慢查询功能,能记录查询时间超过参数 long_query ...
- 盘点 Oracle 11g 中新特性带来的10大性能影响
Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先引起的是一些麻烦,因为对于新技术的不了解.因为对于旧环境的不适应,从Oracle产品到技术服务运维,总是 ...
- koa-convert源码分析
koa-convert最主要的作用是:将koa1包中使用的Generator函数转换成Koa2中的async函数.更准确的说是将Generator函数转换成使用co包装成的Promise对象.然后执行 ...