HDU2089 不要62 —— 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089
不要62
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 47943 Accepted Submission(s): 18165
杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
不吉利的数字为所有含有4或62的号码。例如:
62315 73418 88914
都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。
0 0
题目的一般形式:
求 [ L, R ] 范围内满足限制条件的值的个数。
而 [ L, R ] = [ 0 , R ] - [ 0, L-1 ] ,所以做法就是分别求出 在R范围内满足条件的个数t1, 和 在L-1范围内满足条件的个数t2。
则 ans = t1 - t2。
数位DP(记忆化搜索):
数组:dp[pos][s1][s2][s3……]
pos表示当前位, s1 、s2 ……表示限制条件,维数的个数即限制条件的个数。
比如:dp[pos][s] 表示当前位为pos, 先前状态为s的满足条件的个数。
注意:若先前状态的某个限制条件对后续状态没有影响,那么该限制条件就无需记录了。(例如:HDU3253)
题解:
求一段区间内不含有“4”以及“62”的数的个数。经典的数位DP。
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <sstream>
#include <algorithm>
using namespace std;
typedef long long LL;
const double eps = 1e-;
const int INF = 2e9;
const LL LNF = 9e18;
const int MOD = 1e9+;
const int MAXN = 1e6+; int dp[][], digit[]; int dfs(int pos, int state, int lim) //pos为当前位, status为上一位的状态(是否为6), lim是否仍处于上限
{
if(!pos) return ;
if(!lim && dp[pos][state] != -) return dp[pos][state]; int ret = ;
int maxx = lim?digit[pos]:; //当前位可取的最大值
for(int i = ; i<=maxx; i++)
{
//如果遇到4或者62, 则跳过
if( i== || (state && i==) ) continue;
ret += dfs( pos-, i==, lim&&(i==maxx) );
}
if(!lim) dp[pos][state] = ret; //如果没有处于上限,则记录下来。
return ret;
} int solve(int n)
{
int len = ;
while(n)
{
digit[++len] = n % ;
n /= ;
}
return dfs(len,,);
} int main()
{
int n, m;
memset(dp,-,sizeof(dp));
while(scanf("%d%d",&m,&n) && (m||n) )
{
cout<< solve(n)-solve(m-) <<endl;
}
return ;
}
HDU2089 不要62 —— 数位DP的更多相关文章
- HDU2089 不要62[数位DP]
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu2089不要62(数位dp)
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 【Hdu2089】不要62(数位DP)
Description 题目大意:给定区间[n,m],求在n到m中没有"62"或"4"的数的个数. 如62315包含62,88914包含4,这两个数都是不合法的 ...
- 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·记忆化搜索)
题意 中文 最基础的数位DP 这题好像也能够直接暴力来做 令dp[i][j]表示以 j 开头的 i 位数有多少个满足条件 那么非常easy有状态转移方程 dp[i][j] = sum{ dp[ ...
- [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 模板
http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位DP的思想时预处理以x开头长度为len的数(例如 x000~x999)的所有情况.给出一个数,可以在l ...
随机推荐
- [配置Cordova环境] [Alfred使用手册]
Mac神器 Alfred使用手册http://www.tuicool.com/articles/YJJv2i 配置Cordova环境 1.到nodejs官网下载最新版本,安装pkg文件 2.终端运行 ...
- npm start 修改启动端口的不同方式
antd的启动配置文件基于package.json文件,配合roadhog使用时,启动配置是: "scripts": { "start": "road ...
- IOC基本理解
什么是IOC? IOC全称为控制反转(Inversion Of Control),别名依赖注入(Dependency Injection). 控制反转即指我们获取依赖的方式发生了反转. 假设存在如下情 ...
- CODEVS 1245 最小的N个和 堆+排序
原题链接 http://codevs.cn/problem/1245/ 题目描述 Description 有两个长度为 N 的序列 A 和 B,在 A 和 B 中各任取一个数可以得到 N^2 个和,求 ...
- JDK内置工具jstack(Java Stack Trace)(转)
1.介绍 jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的js ...
- Activiti Model Editor组件
通过Activiti Modeler架构图可知,Activiti Explorer采用的是Vaadin框架. Vaadin 是一种 Java Web 应用程序的开发框架, 其设计目标是便利地创建和维护 ...
- SolidEdge 工程图中如何控制是否显示爆炸图组装线
右击视图,点击性质,取消勾选"显示流线" 即可取消爆炸视图的装配线
- Solidworks做镜像 导致厚度为零的几何体怎么办
如下图所示,我想把1,2,3,4架子做一个镜像,但是提示错误 貌似只能用镜像实体,并且取消勾选"合并实体"
- HTML--比较实用的小例子
常用的前端实例: 1略 2.在网页商城中的图片当我们把鼠标放上去之后,图片会显示一个有颜色的外边框,图片某一部分的字体的颜色并发生改变 鼠标放上去之前 鼠标放上去之后: 实现的代码: <!DOC ...
- hdu 4707 Pet(DFS && 邻接表)
Pet Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...