题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5179

题意:给你一个范围,问你漂亮的数有多少个,漂亮的数的定义为 数位高的比数位低的大,并且 数位高的数%数位低的数为0

题解:数位DP,详细看代码,为了方便,我把所有的参数全部设为了状态,这样就不用判断了

 #include<cstdio>
#include<cstring>
#define F(i,a,b) for(int i=a;i<=b;i++) int t,n,m,dig[],len,dp[][][][]; int dfs(int pos,bool inf=,int pre=,int zo=){
if(!pos)return ;
if(dp[pos][inf][pre][zo]!=-)return dp[pos][inf][pre][zo];
int end=inf?dig[pos]:,ans=;
F(i,,end)if(zo||(pre>=i&&i!=&&pre%i==))
ans+=dfs(pos-,i==end&&inf,i,i==&&zo);
return dp[pos][inf][pre][zo]=ans;;
} int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m),n--;
memset(dp,-,sizeof(dp));
for(len=;n;n/=)dig[++len]=n%;
int tmp=dfs(len);
memset(dp,-,sizeof(dp));
for(len=;m;m/=)dig[++len]=m%;
int ss=dfs(len);
printf("%d\n",ss-tmp);
}
return ;
}

hdu_5179_beautiful number(数位DP)的更多相关文章

  1. 多校5 HDU5787 K-wolf Number 数位DP

    // 多校5 HDU5787 K-wolf Number 数位DP // dp[pos][a][b][c][d][f] 当前在pos,前四个数分别是a b c d // f 用作标记,当现在枚举的数小 ...

  2. hdu 5898 odd-even number 数位DP

    传送门:hdu 5898 odd-even number 思路:数位DP,套着数位DP的模板搞一发就可以了不过要注意前导0的处理,dp[pos][pre][status][ze] pos:当前处理的位 ...

  3. codeforces Hill Number 数位dp

    http://www.codeforces.com/gym/100827/attachments Hill Number Time Limits:  5000 MS   Memory Limits: ...

  4. HDU 5787 K-wolf Number 数位DP

    K-wolf Number Problem Description   Alice thinks an integer x is a K-wolf number, if every K adjacen ...

  5. Fzu2109 Mountain Number 数位dp

    Accept: 189    Submit: 461Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description One ...

  6. HDU 3709 Balanced Number (数位DP)

    Balanced Number Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  7. beautiful number 数位DP codeforces 55D

    题目链接: http://codeforces.com/problemset/problem/55/D 数位DP 题目描述: 一个数能被它每位上的数字整除(0除外),那么它就是beautiful nu ...

  8. FZU - 2109 Mountain Number 数位dp

    Mountain Number One integer number x is called "Mountain Number" if: (1) x>0 and x is a ...

  9. BNU 13024 . Fi Binary Number 数位dp/fibonacci数列

    B. Fi Binary Number     A Fi-binary number is a number that contains only 0 and 1. It does not conta ...

随机推荐

  1. knockout.js-创建视图模型

    监控属性(Observables) knockout的三个核心特点: 1.监控属性与依赖跟踪 2.声明式绑定 3.模板 本页,你将学习上述三个特性.但是在这之前,先了解一下MVVC模式,及 视图模型( ...

  2. AltiumDesigner14绘制四层板设置

    1,快捷键(O+K)进入板层设置界面: 2,选择AddLayer,里边有两个选项(add layer(添加信号层)||add internal plane(增加平面))  四层板的话一般层次的划分是t ...

  3. Django 基础知识

    Django Models django 本身提供了非常强大易使用的ORM组件,并且支持多种数据库,如sqllite,mysql,progressSql,Oracle等,当然最常用的搭配还是mysql ...

  4. spring框架--IOC容器,依赖注入

    思考: 1. 对象创建创建能否写死? 2. 对象创建细节 对象数量 action  多个   [维护成员变量] service 一个   [不需要维护公共变量] dao     一个   [不需要维护 ...

  5. Html:upload

    文件上传框 有时候,需要用户上传自己的文件,文件上传框看上去和其它 文本域差不多,只是它还包含了一个浏览按钮.访问者可以通 过输入需要上传的文件的路径或者点击浏览按钮选择需要上传 的文件. 代码格式: ...

  6. C++ 中Hello World的一种写法

    /*C++ Hello World**/#include <stdio.h>#include <iostream>int main(){    printf("Hel ...

  7. 求最大公约数(GCD)的两种算法

    之前一直只知道欧几里得辗转相除法,今天学习了一下另外一种.在处理大数时更优秀的算法--Stein 特此记载 1.欧几里得(Euclid)算法 又称辗转相除法,依据定理gcd(a,b)=gcd(b,a% ...

  8. 关于video.js

    网址:http://www.cnblogs.com/webenh/p/5815741.html

  9. MySQL的数据类型【总结】

    1.时间类型 MySQL的DateTime,TimeStamp,Date和Time数据类型. DATETIME类型用在你需要同时包含日期和时间信息的值时.MySQL检索并且以'YYYY-MM-DD H ...

  10. u盘烧写后实际容量变小了

    百度了一下 : http://jingyan.baidu.com/article/d45ad148f383ea69552b808a.html 百度下载 USBoot 打开软件 列表中选择你的U盘,点击 ...