HDOJ题目2089 不要62(数位DP)
不要62
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 25391 Accepted Submission(s): 8788
杭州交通管理局常常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来。就能够消除个别的士司机和乘客的心理障碍。更安全地服务大众。
不吉利的数字为全部含有4或62的号码。
比如:
62315 73418 88914
都属于不吉利号码。可是,61152尽管含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是。对于每次给出的一个牌照区间号。判断出交管局今次又要实际上给多少辆新的士车上牌照了。
1 100
0 0
80
pid=2065" target="_blank" style="color:rgb(26,92,200); text-decoration:none">2065
#include<stdio.h>
#include<string.h>
int dp[10][3];
void init()
{
dp[0][2]=1;
dp[0][0]=dp[0][1]=0;
for(int i=1;i<10;i++)
{
dp[i][0]=dp[i-1][0]*10+dp[i-1][1]+dp[i-1][2];
dp[i][1]=dp[i-1][2];
dp[i][2]=dp[i-1][2]*9-dp[i-1][1];
}
}
int n,m;
int solve(int n)
{
int bit[10],len=0;
int temp=n;
while(n)
{
bit[++len]=n%10;
n/=10;
}
bit[len+1]=0;
int flag=0,ans=0,i;
for(i=len;i>=1;i--)
{
ans+=dp[i-1][0]*bit[i];
if(flag)
{
ans+=dp[i-1][2]*bit[i];
}
if(!flag&&bit[i]>4)
{
ans+=dp[i-1][2];
}
if(!flag&&bit[i]>6)
{
ans+=dp[i-1][1];
}
if(!flag&&bit[i+1]==6&&bit[i]>2)
{
ans+=dp[i][1];
};
if(bit[i]==4||(bit[i]==2&&bit[i+1]==6))
flag=1;
}
if(flag)
ans++;
return temp-ans;
}
int main()
{
int i,j;
init();
while(scanf("%d%d",&n,&m)!=EOF,n||m)
{
//if()
printf("%d\n",solve(m)-solve(n-1));
}
}
HDOJ题目2089 不要62(数位DP)的更多相关文章
- 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 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模板题
题目链接: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 ...
- hud 2089 不要62 (数位dp)
#include<stdio.h> #include<string.h> #include<math.h> #define max 10 ]; int number ...
- hdu 2089不要62 (数位dp)
Problem Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来 ...
随机推荐
- js适配根字体大小
方法一:<script> (function (doc, win) { var docEl = doc.documentElem ...
- Android 程序 LinearLayout布局 参数layout_weight 探讨
官方参考文档 对LinearLayout.LayoutParams中的android:layout_weight解释如下:Indicates how much of the extra space i ...
- Python序列化、date、random、os模块
知识点一:序列化与反序列化(json和pickple) 01 什么是序列化/反序列化 序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输 发序列化就是硬盘中或者网络中 ...
- 矩阵快速幂在ACM中的应用
矩阵快速幂在ACM中的应用 16计算机2黄睿博 首发于个人博客http://www.cnblogs.com/BobHuang/ 作为一个acmer,矩阵在这个算法竞赛中还是蛮多的,一个优秀的算法可以影 ...
- Android Webview 与JS交互
Android中 WebView控件支持JS与本地代码的交互. // 是否允许在webview中执行javascript webSettings.setJavaScriptEnabled(true); ...
- 【Luogu】P3396哈希冲突(根号算法)
题目链接 根号算法真的是博大精深啊……明明是暴力但复杂度就是能过 这也太强了吧!!! 预处理出p<=sqrt(n)的所有情况,耗时n根n 查询: 如果p<=根n,O1查表 如果p>= ...
- 求N维前缀和
转载自http://blog.csdn.net/jzhang1/article/details/50528549#comments 膜拜 #include <iostream> #incl ...
- vue2.0 mintUI 学习备忘
一 技术栈:vuecli+vuejs2+mintUI+axios vuecli :脚手架工具 vuejs:前端框架 mintUI:基于vuejs移动端UI axios:vuejs ajax数据交互 ...
- 系统虚拟内存的理解 转载自http://blog.csdn.net/do2jiang/article/details/4690967
在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制. 一 早期的内存分配机制 在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序 ...
- PHP 几个常用的正则表达式
记录几个PHP中比较常用的正则. , $max_len = 20){ if (empty($username)) { return false; } $match = '/^(?![0-9]+$)[\ ...