/*
做的不多的位数dp
暴力的话 不知道多少组数据 会T
所以写dp 思路就和数学课本上那种“不超过xxx的x位偶数有几个”
这里可以类似的维护一个前缀和模样的东西(但又不同于前缀和)
状态:f[i][j] 表示以j开头的i位数符合条件的个数 (j可以是0)
然后可以已处理一下像是10000这种整的数 注意舍去不符合条件的
然后对于一个像123456这样不整的数 就从该高位逐位找
以此类推
*/
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int st,en,ans,data[],l,f[][];
void ready()
{
f[][]=;
for(int i=;i<=;i++)//枚举位数
for(int j=;j<=;j++)//枚举第i为是什么
for(int k=;k<=;k++)//枚举第i-1为是什么
if((j==&&k==)||j==||k==)continue;//舍去
else f[i][j]+=f[i-][k];
}
void get_data(int x)
{
while(x>)
{
data[++l]=x%;
x=x/;
}
}
int slove(int x)
{
ans=;l=;
memset(data,,sizeof(data));
get_data(x);//得到每一个数拆完是什么
for(int i=l;i>=;i--)
{
for(int j=;j<data[i];j++)//枚举第i位是什么 枚举到<data[i]
if((j==&&data[i+]==)||j==)continue;
else ans+=f[i][j];
if(data[i]==||(data[i]==&&data[i+]==))break;//往后找的一定包含这个4 或者62 就不用找了
}
return ans;
}
int main()
{
//freopen("cin.in","r",stdin);
//freopen("test.out","w",stdout);
ready();
while()
{
scanf("%d%d",&st,&en);
if(st==&&en==)break;
printf("%d\n",slove(en+)-slove(st));
}
return ;
}

HUD 2089 位数dp的更多相关文章

  1. HDU 4722 Good Numbers(位数DP)(2013 ACM/ICPC Asia Regional Online ―― Warmup2)

    Description If we sum up every digit of a number and the result can be exactly divided by 10, we say ...

  2. hdu:2089 ( 数位dp入门+模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位dp的模板题,统计一个区间内不含62的数字个数和不含4的数字个数,直接拿数位dp的板子敲就行 ...

  3. hud 2089 不要62 (数位dp)

    #include<stdio.h> #include<string.h> #include<math.h> #define max 10 ]; int number ...

  4. HUD 2089

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. hdu 2089 数位dp

    链接:https://vjudge.net/problem/23625/origin 中文,题目不用说了. 其实这题的数据很小,所以直接暴力也可以过,但是还是要学会数位dp,因为并不是每一题的数据都会 ...

  6. HDU 2089 数位dp入门

    开始学习数位dp...一道昨天看过代码思想的题今天打了近两个小时..最后还是看了别人的代码找bug...(丢丢) 传说院赛要取消 ? ... 这么菜不出去丢人也好吧~ #include<stdi ...

  7. HDU 2089 数位dp/字符串处理 两种方法

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. 不要62(HDU 2089数位dp入门)

    题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个. 分析:dp[i][f]数字表示不含 4 和 62的前提下,剩余长度为 len ,首位是否为 6 的个数. #include < ...

  9. HDU - 2089 数位DP 初步

    中文题目,不要62和4 从高位往低位DP,注意有界标志limit的传递 dp2记忆有界情况下的计数结果,据说用处不大 我所参考的入门文章就是半搜索(有界)半记忆(无界)的 进阶指南中提出dfs维度有多 ...

随机推荐

  1. Unity的Profiler性能分析

    1. CPU Usage A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体时间-所有单项的记录时间总 ...

  2. java.lang.String.indexOf()用法

    java.lang.String.indexOf(char ch) 方法返回字符ch在指定字符串中第一次出现的下标索引位置 如果字符ch在指定的字符串中找不到,则返回-1 示例: import jav ...

  3. 浅谈RDD

    RDD(Resilient Distributed Datasets)弹性分布式数据集,是在集群应用中分享数据的一种高效,通用,容错的抽象,是Spark提供的最重要的抽象的概念, 它是一种有容错机制 ...

  4. Hibernate 配置详解(3)

    7) hibernate.max_fetch_depth: 该属性用于设置left out join单对象查询关系(one-to-one/many-to-one)中最大的关联深度.默认值为0,即默认情 ...

  5. mysql 监控长事务

    mysql> desc information_schema.innodb_trx -> ; +----------------------------+----------------- ...

  6. Unity 技能按钮触发特效

    unity 版本:4.5.1 NGUI版本:3.6.5 首先,要导入特效资源包,导入应该是基本中的基础,但是对于初学者来说好像很少有这方面的介绍,也许是我现学现用书看的不够认真,因为导入这个问题卡了好 ...

  7. kernel解读之 pick_next_rt_entity

    1328 static struct sched_rt_entity *pick_next_rt_entity(struct rq *rq, 1329 struct rt_rq *rt_rq) 133 ...

  8. POJ3087 Shuffle'm Up(模拟)

    题目链接. AC代码如下; #include <iostream> #include <cstdio> #include <cstring> #include &l ...

  9. (转载)用PHP正则表达式清除字符串的空白

    (转载)http://www.chinaz.com/program/2009/0220/67569.shtml 我们经常会处理来自用户输入或从数据库中读取的数据,可能在你的字符串中有多余的空白或制表符 ...

  10. iOS: 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系

    刚接触iOS开发的人难免会对苹果的各种证书.配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解.这篇文章就对Certificate.Provisioni ...