题解——HDU 2089 不要62(数位DP)
最近在学数位DP
应该是入门题吧
设\( dp[i][0/1] \)表示到第\( i \)位时,前一位是否是6的满足条件的数的个数
然后就是套路
注意\( limit \)的限制条件以及转移时候信息的记录,不能遗漏信息
代码写的记忆化搜索
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int dp[][],a[];
int dfs(int pos,int pre,int limit,int state){
if(pos==-)
return ;
if(!limit&&dp[pos][state]!=-)
return dp[pos][state];
int up = limit?a[pos]:;
int mid=;
for(int i=;i<=up;i++){
if(i==)
continue;
if(pre==&&i==){
continue;
}
mid+=dfs(pos-,i,limit&&i==a[pos],i==);
}
if(!limit)
dp[pos][state]=mid;
return mid;
}
int solve(int x){
int con=;
memset(dp,-,sizeof(dp));
memset(a,,sizeof(a));
while(x){
a[con]=x%;
x/=;
con++;
}
return dfs(con,-,true,false);
}
int main(){
int l,r;
while(scanf("%d %d",&l,&r)==&&l!=&&r!=)
printf("%d\n",solve(r)-solve(l-));
return ;
}
题解——HDU 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入门题目)
题目链接: Hdu 2089 不要62 题目描述: 给一个区间 [L, R] ,问区间内不含有4和62的数字有多少个? 解题思路: 以前也做过这个题目,但是空间复杂度是n.如果数据范围太大就GG了.今 ...
- [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模板题
题目链接: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 ...
- 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). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...
- hud 2089 不要62 (数位dp)
#include<stdio.h> #include<string.h> #include<math.h> #define max 10 ]; int number ...
随机推荐
- python2.7之乱码问题
python 3之后当然不存在乱码问题了.python 2的乱码问题有时就有点头疼了.(代码均为在windows下测试) 示例:保存为test1.py 报错信息如下: 解决办法: 我将代码保存为tes ...
- html5-列表
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- html5-常用的文本元素
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Ontology Relations
Overview The following page documents the relations used in the filtered GO ontology. For informatio ...
- ftp下载文件失败get: Access failed: 550 Failed to open file. (t1.log)
get: Access failed: 550 Failed to open file. (t1.log) 原因是被SELinux安全访问控制策略限制了. 科普: SELinux(Security-E ...
- 字符编码几个缩写 ACR CCS CEF CES TES
摘自https://zhuanlan.zhihu.com/p/27012967 5. 在Unicode Technical Report (UTR统一码技术报告) #17<UNICODE CHA ...
- python 读csv文件对列名进行合法性验证
如果正在读取CSV 数据并将它们转换为命名元组,需要注意对列名进行合法性认证.例如,一个CSV 格式文件有一个包含非法标识符的列头行,这样最终会导致在创建一个命名元组时产生一个ValueError 异 ...
- hive的find_in_set函数
集合查找函数: find_in_set语法: find_in_set(string str, string strList) 返回值: int说明: 返回str在strlist第一次出现的位置,str ...
- linux常用命令:touch 命令
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 1.命令格式: touch [选项]... 文件... 2.命令参数: -a ...
- navicat 连接postgresql报错pg_hba.conf
PostgreSQ数据库为了安全,它不会监听除本地以外的所有连接请求,当用户通过JDBC访问是,会报一些如下的异常: org.postgresql.util.PSQLException: FATAL: ...