[HDU2089]不要62
[HDU2089]不要62
试题描述
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。
杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
不吉利的数字为所有含有4或62的号码。例如:
62315 73418 88914
都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。
输入
输入的都是整数对n、m(0<n≤m<1000000),如果遇到都是0的整数对,则输入结束。
输出
对于每个整数对,输出一个不含有不吉利数字的统计个数,该数值占一行位置。
输入示例
输出示例
数据规模及约定
见“输入”
题解
106 直接处理前缀和即可。。。强行练一波数位 dp。。
前缀和版。。。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std; int read() {
int x = 0, f = 1; char c = getchar();
while(!isdigit(c)){ if(c == '-') f = -1; c = getchar(); }
while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); }
return x * f;
} bool has62(int x) {
while(x) {
if(x % 100 == 62) return 1;
x /= 10;
}
return 0;
}
bool has4(int x) {
while(x) {
if(x % 10 == 4) return 1;
x /= 10;
}
return 0;
} #define maxn 1000010
int f[maxn]; int main() {
f[0] = 0;
for(int i = 1; i <= maxn - 10; i++) f[i] = f[i-1] + (!has62(i) && !has4(i));
int n = read(), m = read();
while(n || m) {
printf("%d\n", f[m] - f[n-1]);
n = read(); m = read();
} return 0;
}
数位 dp 版。。。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std; int read() {
int x = 0, f = 1; char c = getchar();
while(!isdigit(c)){ if(c == '-') f = -1; c = getchar(); }
while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); }
return x * f;
} int f[7][11]; int num[11], cnt;
int sum(int x) {
cnt = 0;
int tmp = x;
while(x) num[++cnt] = x % 10, x /= 10;
int ans = 0; bool ok = 1;
for(int i = cnt; i; i--) {
for(int j = 0; j < num[i]; j++)
if(i < cnt && num[i+1] == 6 && j == 2) ;
else ans += f[i][j];
if(num[i] == 4 || (i < cnt && num[i+1] == 6 && num[i] == 2)) {
ok = 0; break;
}
}
ans += ok;
// printf("%d %d\n", tmp, ans);
return ans;
} int main() {
f[0][0] = 1;
for(int i = 0; i < 6; i++)
for(int j = 0; j <= 9; j++) if(f[i][j]) {
for(int k = 0; k <= 9; k++)
if(k != 4 && !(k == 6 && j == 2))
f[i+1][k] += f[i][j];
// printf("%d %d: %d\n", i, j, f[i][j]);
} int l = read(), r = read();
while(l || r) {
printf("%d\n", sum(r) - sum(l - 1));
l = read(); r = read();
} return 0;
}
[HDU2089]不要62的更多相关文章
- 数位dp入门 hdu2089 不要62
		
数位dp入门 hdu2089 不要62 题意: 给定一个区间[n,m] (0< n ≤ m<1000000),找出不含4和'62'的数的个数 (ps:开始以为直接暴力可以..貌似可以,但是 ...
 - [您有新的未分配科技点]数位dp:从懵X到板子(例题:HDU2089 不要62)
		
数位dp主要用来处理一系列需要数数的问题,一般套路为“求[l,r]区间内满足要求的数/数位的个数” 要求五花八门……比如“不出现某个数字序列”,“某种数的出现次数”等等…… 面对这种数数题,暴力的想法 ...
 - HDU2089 不要62[数位DP]
		
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
 - hdu2089不要62(数位dp)
		
#include <stdio.h> #include <string.h> ][]; ]; /* dp[i][0] 不含62,4 dp[i][1] 2开头 dp[i][2] ...
 - ☆ [HDU2089] 不要62「数位DP」
		
类型:数位DP 传送门:>Here< 题意:问区间$[n,m]$的数字中,不含4以及62的数字总数 解题思路 数位DP入门题 先考虑一般的暴力做法,整个区间扫一遍,判断每个数是否合法并累计 ...
 - HDU2089 ------不要62(数位dp)
		
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
 - 【数位dp】hdu2089 不要62
		
http://www.cnblogs.com/xiaohongmao/p/3473599.html #include<cstdio> using namespace std; int n, ...
 - [暑假集训--数位dp]hdu2089 不要62
		
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍, ...
 - HDU2089 不要62 —— 数位DP
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 不要62 Time Limit: 1000/1000 MS (Java/Others) M ...
 
随机推荐
- js021-Ajax与Comet
			
js021-Ajax与Comet 本章内容: 使用XMLHttpRequet对象 使用XMLHttpRequet事件 跨域Ajax通信的限制 Ajax技术的核心是XMLHttpRequet对象 21. ...
 - js初学—js全自定义单选框
			
代码如下: <script type="text/javascript"> window.onload=function() { var oIput=document. ...
 - 数据库SQL优化大总结
			
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
 - ORACLE查看并修改session和连接最大数
			
第一步,在cmd命令行,输入sqlplus 第二步,根据提示输入用户名与密码 1. 查看processes和sessions参数 SQL> show parameter processes NA ...
 - cmake 编译 c++ dll 的一个例子(更新2:增加 python 调用方法)
			
CMakeLists.txt project(xxx) add_library(xxx SHARED xxx.cpp) add_executable(yyy yyy.cpp) target_link_ ...
 - dedecms标签的sql语句
			
{dede:sql sql='Select content from dede_arctype where id=1' titlelen='40′} [field:content/] {/dede:s ...
 - GIT@OSC中托管Android studio代码
			
弄了好久,才知道如何向GIT@OSC托管代码,这里有需要的同学可以参考一下. 1.在GIT@OSC上新建一个工程 2.在AS中新建一个工程 3.在AS中选择“enable version contro ...
 - owin中间件
			
public class HelloWorldOptions { public HelloWorldOptions() { IncludeTimestamp = true; Name = " ...
 - Effective Objective-C 2.0 — 第三条:多用字面量语法,少用与之等价的方法
			
第三条:多用字面量语法,少用与之等价的方法 几个类:NSString NSNumber NSArray NSDictionary 字面量语法是一种语法糖(syntactic sugar) NSS ...
 - C-函数与内存剖析
			
功能,封装,调用 形参:定义函数时函数名后面中的参数,形式参数 实参:调用函数时传入的具体数据 return作用:1退出函数 2返回一个具体数值给调用者 返回值: 如果不明确声明返回值类型,默认就是i ...