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). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...
随机推荐
- Umbraco模型默认属性
Media Model的属性: umbracoFileumbracoWidthumbracoHeightumbracoBytesumbracoExtension
- nova的 microversion 实现
之前想写nova的policy的实现, 但是发现网上,有人写的很不错了. 但是个人认为存在一些问题. ref: http://www.cnblogs.com/shaohef/p/4527436.htm ...
- 7.15 css与js 选择奇偶子元素的区别
js: 选取偶数位置的 <tr> 元素 $("tr:even") 选取奇数位置的 <tr> 元素 $("tr:odd") css 选取偶 ...
- 愤怒的DZY(二分)
愤怒的DZY[问题描述]“愤怒的小鸟”如今已经是家喻户晓的游戏了,机智的WJC最近发明了一个类似的新游戏:“愤怒的DZY”.游戏是这样的:玩家有K个DZY,和N个位于不同的整数位置:X1,X2,…,X ...
- Leetcode:Swap Nodes in Pairs 单链表相邻两节点逆置
Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...
- Boost.Asio c++ 网络编程翻译(14)
保持活动 假如,你须要做以下的操作: io_service service; ip::tcp::socket sock(service); char buff[512]; ... read(sock, ...
- CF Codeforces Round #258 (Div. 2) B (451B)
题意:找出一段逆序! 预存a[]数组到b[]数组.将b排序,然后前后找不同找到区间[l,r],然后推断[l,r]是否逆序就能够了!.当然还得特判本身就是顺序的!! ! AC代码例如以下: #inclu ...
- linux性能监控三张图
一.监控 二.测试 三.优化
- The file “XXX” couldn’t be opened because you don’t have permission to view it.解决方法:
The file “XXX” couldn’t be opened because you don’t have permission to view it.解决方法: 解决方法:直接点击Xcod ...
- NSURLSessionConfiguration的简单实用
NSURLSessionConfiguration 基于前面学习了NSURLSession的知识,这边文章就讲下NSURLSessionConfiguration相关应用,(这名字可真长). 简而言之 ...