题目链接:http://acm.swust.edu.cn/problem/1097/

Time limit(ms): 1000      Memory limit(kb): 32768
 

今年是2014年,所以小明喜欢2014的每一位数字(即:2,0,1,4),小明想知道在区间[l,r](包括l和r)中有多少个数中含有这4个数字(数字无前缀零)。

Description

多组数据。

每组数据输入2个数l,r(0<l<r<=10^9)

Input

输出占一行,即区间[l,r](包括l和r)中包含的满足条件的数的个数

Output
1
2
3
1 10
100 1024
 
Sample Input
1
2
3
0
1
 
Sample Output
输出换行请使用\r\n

Hint
swust第10届校赛
 
 
解题思路:就一个简单的数位dp,直接套模板就是了~~~
(不会的可以戳戳这里:http://www.cnblogs.com/zyxStar/p/4563830.html
 
代码如下:
 #include<iostream>
#include<cstring>
using namespace std;
int dp[][][][][];//返回各数状态
int bit[]; //数位dp
int dfs(int pos, int s2, int s0, int s1, int s4, bool limit, bool fzero)
{
//注意前导零的影响
if (pos == -) return s2&&s0&&s1&&s4;
if (!limit&&!fzero&&~dp[pos][s2][s0][s1][s4])
return dp[pos][s2][s0][s1][s4];//条件判断
int end = limit ? bit[pos] : ;
int ans = , i;
for (i = ; i <= end; i++){
int now2 = s2, now0 = s0, now1 = s1, now4 = s4;
if (s2 == ){
if (i == )
now2 = ;
}
if (s0 == ){
if (!fzero&&i == )
now0 = ;
}
if (s1 == ){
if (i == )
now1 = ;
}
if (s4 == ){
if (i == )
now4 = ;
}
ans += dfs(pos - , now2, now0, now1, now4, limit&&i == end, fzero&&!i);
}
return limit || fzero ? ans : dp[pos][s2][s0][s1][s4] = ans;
}
int calc(int n){
int len = ;
while (n){
bit[len++] = n % ;
n /= ;
}
return dfs(len - , , , , , , );
}
int main(){
int l, r;
memset(dp, -, sizeof(dp));
while (cin >> l >> r)
cout << calc(r) - calc(l - ) << "\r\n";
return ;
}

[Swust OJ 1097]--2014(数位dp)的更多相关文章

  1. [Swust OJ 649]--NBA Finals(dp,后台略(hen)坑)

    题目链接:http://acm.swust.edu.cn/problem/649/ Time limit(ms): 1000 Memory limit(kb): 65535 Consider two ...

  2. light oj 1068 - Investigation 数位DP

    思路:典型的数位DP!!! dp[i][j][k]:第i位,对mod取余为j,数字和对mod取余为k. 注意:由于32位数字和小于95,所以当k>=95时,结果肯定为0. 这样数组就可以开小点, ...

  3. [Swust OJ 715]--字典序问题(组合数预处理/数位dp)

    题目链接:http://acm.swust.edu.cn/problem/715/ Time limit(ms): 1000 Memory limit(kb): 65535   在数据加密和数据压缩中 ...

  4. [Swust OJ 648]--简单字典(数位dp)

    题目链接:http://acm.swust.edu.cn/problem/0648/ Time limit(ms): 1000 Memory limit(kb): 65535   有这样一本字典,它每 ...

  5. Light OJ 1032 - Fast Bit Calculations(数位DP)

    题目大意: 一个数字把他看成二进制数字,数字里又会一些相邻的1,问从0到n至间所有相邻1的总和是多少?   分解成2进制数字,然后数位DP就行了.   ======================== ...

  6. NEUQ OJ 2004:追梦之人 (计数数位dp)

    2004: 追梦之人 描述 题目描述: 为了纪念追梦人,粉丝们创造了一种新的数——“追梦数”.追梦数要满足以下两个条件:1.数字中不能出现“7”2.不能被7整除.比如:777和4396就不是追梦数,而 ...

  7. bzoj 3598 [ Scoi 2014 ] 方伯伯的商场之旅 ——数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3598 数位DP...东看西看:http://www.cnblogs.com/Artanis/ ...

  8. [swustoj 1097] 2014

    2014(1097) 问题描述 今年是2014年,所以小明喜欢2014的每一位数字(即:2,0,1,4),小明想知道在区间[l,r](包括l和r)中有多少个数中含有这4个数字(数字无前缀零). 输入 ...

  9. hdu----(5045)Contest(数位dp)

    Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

随机推荐

  1. Java 网络编程(Elliotte Rusty Harold)

    最近看了本Java网络编程方面的书,系统化一下Java网络编程,主要内容如下: 1.网络基础篇 这里包括基础的网络概念/ 输入输出流BIO/ Internet地址/URI/URL/HTTP/URLCo ...

  2. XCode里遇到 #include <XXX.h>file not found的解决方案

    最近在学习如何在C++里调用Java方法,遇到提示 #include <XXX.h> file  not  found 的问题.也google了好久都没有找到合适的解决方案. 认真的研究了 ...

  3. PHP_Yii框架_专辑<一>

    一.PHP主流框架 cakephp—速度比较慢.CI(codeIgniter)—小型.symfony. TP(thinkphp)—国人开发.小型.zendframework(官方)—大型 Yii: 特 ...

  4. thinkphp phpexcel导入

    上次做了一个基于tp3.2.3的phpexcel导出,这次是phpexcel导入,准备材料phpexcel(不知道下载地址的查看我上一篇博文),虽说是基于thinkphp3.2.3来的,也只不过是引入 ...

  5. 2_Cat Years

    2 // // ViewController.swift // Cat Years // // Created by ZC on 16/1/6. // Copyright © 2016年 ZC. Al ...

  6. mysql读写分离

    严格意义上讲,MySQL 读.写分离确实存在上述情况,这是由Master-Slave 异步复制存在延迟所导致的,且Master binlog的写入为多线程,而Slave同步的sql_thread为单线 ...

  7. 宣布在 Azure 镜像库中正式推出 Windows Server 2012 R2 并降低 Windows Azure 的实例定价

    我们今天将宣布两条消息,为使用基础结构服务的客户提供更多选择和成本节约:在镜像库中推出 Windows Server 2012 R2 以及降低 Memory Intensive 计算实例定价. 虚拟机 ...

  8. [Windows编程] 使用AttachThreadInput 来捕捉其它窗口的键盘输入

    在一些情况下(比如屏幕软键盘或者输入法程序),自己的窗口没有输入焦点但是想要当前焦点窗口的键盘输入消息,可以使用Win32 API函数AttachThreadInput()来解决这个问题.Attach ...

  9. IPTABLES 映射问题

    今天要做一个新的映射:将内网的一个8090口映射到外网的8087口. 在 /ETC/RC.LOCAL中最后插入: iptables -t nat -A PREROUTING -d outIP -p t ...

  10. CSS+DIV标签命名规范 搜索引擎最喜欢

    搜索引擎优化(seo)有很多工作要做,其中对代码的优化是一个很关键的步骤.为了更加符合SEO的规范,下面是目前流行的CSS+DIV的命名规则: 登录条:loginBar  标志:logo  侧栏:si ...