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 快捷键: 添加/移除书签 ...
随机推荐
- js判断是否是移动端自动跳转到wap页面代码
<script type="text/javascript"> function is_mobile(){ var regex_match=/(nokia|iphone ...
- MySQL高级知识(四)——Explain
前言:explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句.explain主要用于分析查询语句或表结构的性能瓶颈. 注:本系列随 ...
- 什么是数据库ACID?
原子性:由于操作失败导致的数据碎片错误: 一致性:由于并发导致的数据库数据错误(与预期不一致): 隔离性:由于并发导致的当前使用数据(应用端)错误: 事务在当今的企业系统无处不在,即使在高并发环境下也 ...
- UVA12188-Inspector's Dilemma(欧拉回路+连通性判断)
Problem UVA12188-Inspector's Dilemma Time Limit: 3000 mSec Problem Description In a country, there a ...
- [CQOI2016]手机号码
嘟嘟嘟 这题一看就是数位dp. 我写数位dp,一般是按数位dp的格式写一个爆搜,然后加一点记忆化. 不过其实我一直不是很清楚记忆化是怎么加,感觉就是把dfs里的参数都扔到dp数组里,好像很暴力啊. 这 ...
- js 常用的比较排序算法总结
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一直很惧怕算法,总是感觉特别伤脑子,因此至今为止,几种基本的排序算法一直都不是很清楚, ...
- 【转】PHP获取重定向URL的几种方法
有时候我们会在开发中,经常会遇到有URL 301或 302重定向的情况,这时候我们可能需要获取重定向之后的url,下面我们介绍一下几种获取重定向url的方法: 1.用get_headers函数php自 ...
- Python:Day13
id() 查看内存地址 和while循环一样,在for循环中也可以使用break和continue,两者效果一样. repr
- (二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列
参考网站 1该mqtt光平台可以让您控制您的MQTT启用灯.它支持设置亮度,色温,效果,闪烁,开/关,RGB颜色,过渡,XY颜色和白色值. https://www.home-assistant.io/ ...
- Python框架学习之用Flask创建一个简单项目
在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成 ...