hud 2089 不要62 (数位dp)
#include<stdio.h>
#include<string.h>
#include<math.h>
#define max 10
int dp[max][];
int number[max];
//dp[i][0] 前i位数中不符合要求的总个数
//dp[i][1] 前i位数中最高位是2的个数
//dp[i][2] 前i位数中存在含4和有连续62的个数
void init()
{
memset(dp,,sizeof(dp));
dp[][]=;
for(int i=;i<max;i++)
{
dp[i][]=dp[i-][]*-dp[i-][]; //除了4 并不含6+2..的
dp[i][]=dp[i-][]; //2+,
dp[i][]=dp[i-][]*+dp[i-][]+dp[i-][];
}
}
int len_num(int num)
{
int i=;
memset(number,,sizeof(number));
while(num)
{
++i;
number[i]=num%;
num/=;
}
return i;
}
int solve(int num)
{
int i,flag=,count=;
int len=len_num(num);
number[len+]=;
for(i=len;i>;i--)
{
count+=dp[i-][]*number[i];
if(flag)
{
count+=dp[i-][]*number[i];
}
else
{
if(number[i]>) count+=dp[i-][];
if(number[i]>) count+=dp[i-][];
if(number[i]>&&number[i+]==) count+=dp[i][];//等于62是这个本身不用算在里面 只有大于2才会完全计算
if((number[i]==&&number[i+]==)||number[i]==)
flag=;
}
}
return num-count;
}
int main(void)
{
init();
int n,m,i,j;
while(scanf("%d%d",&n,&m)&&n&&m)
{
printf("%d\n",solve(m+1)-solve(n));
}
return ;
}
hud 2089 不要62 (数位dp)的更多相关文章
- HDU 2089 - 不要62 - [数位DP][入门题]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...
- [hdu 2089] 不要62 数位dp|dfs 入门
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意:求[n, m]区间内不含4和62的数字个数. 这题有两种思路,直接数位dp和dfs 数位d ...
- Hdu 2089 不要62 (数位dp入门题目)
题目链接: Hdu 2089 不要62 题目描述: 给一个区间 [L, R] ,问区间内不含有4和62的数字有多少个? 解题思路: 以前也做过这个题目,但是空间复杂度是n.如果数据范围太大就GG了.今 ...
- HDU 2089 不要62 数位DP模板题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 参考博客:https://www.cnblogs.com/HDUjackyan/p/914215 ...
- HDU 2089 不要62(数位DP·记忆化搜索)
题意 中文 最基础的数位DP 这题好像也能够直接暴力来做 令dp[i][j]表示以 j 开头的 i 位数有多少个满足条件 那么非常easy有状态转移方程 dp[i][j] = sum{ dp[ ...
- hdu 2089 不要62 数位dp
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDOJ题目2089 不要62(数位DP)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 2089 不要62 (数位dp基础题)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 2089不要62 (数位dp)
Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...
随机推荐
- openssl编译(VC6.0)
官网:http://www.openssl.org/ 得到源码: git clone https://github.com/openssl/openssl 一.用vc编译器编译: 1.下载nasm: ...
- InputStream、OutputStream、String的相互转换(转)
//1.字符串转inputStream String string; //...... InputStream is = new ByteArrayInputStream(string.getByte ...
- 清风注解-Swift程序设计语言:Point11~15
目录索引 清风注解-Swift程序设计语言 Point 11. 数值型字面量 代码事例: let decimalInteger = // 十进制的17 let binaryInteger = 0b10 ...
- 去英国Savile Row 做件私人定制手工西装_GQ男士网
去英国Savile Row 做件私人定制手工西装_GQ男士网 去英国Savile Row 做件私人定制手工西装
- Python 学习之中的一个:在Mac OS X下基于Sublime Text搭建开发平台包括numpy,scipy
1 前言 Python有许多IDE能够用,官方自己也带了一个,Eclipse也能够. 但我在使用各种IDE之后,发现用Sublime Text是最好用的一个.因此.我都是用Sublime Text来编 ...
- Spring MVC 简单介绍
Spring MVC 是典型的mvc架构,适合web开发. controler 输入输出的控制器,也是对外view提供数据的接口,调用service层. model 数据,由bean组成(相应表),关 ...
- 使用 Eclipse Memory Analyzer 进行堆转储文件分析
Eclipse Memory Analyzer(MAT)是著名的跨平台集成开发环境 Eclipse Galileo 版本的 33 个组成项目中之一,它是一个功能丰富的 JAVA 堆转储文件分析工具,可 ...
- Tomcat的JVM内存大小如何设置?【转】
[转]:专家答疑 Tomcat的JVM内存大小如何设置? 本文和大家重点讨论一下如何设置Tomcat的JVM内存大小,JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存 ...
- The Rose
Some say love it is a river 有人说爱是一条河 that drowns the tender reed 会淹没轻柔的芦苇 Some say love it is a razo ...
- wcf xml消息客户端cookie
public override bool Login(string userName, string password) { using (HttpClient client = new HttpCl ...