题意:

一个如果称作是漂亮数,当且仅当满足:

每一位上的数字是【1,9】,从高到时低数字大小降序,且有di%dj=0(i<j) 例:931

给一个区间【L,R】,问这个区间里有多少个漂亮数。

1≤L≤R≤109

思路:

漂亮数一看就很少。可以直接构造。

哎,,,用了DP+构造,写了好久。。。其实很简单的一个DFS构造就行了。

过些天补上代码。先贴冗长代码~

代码:

int T,L,R;
int wei;
int ans1,ans2,ans;
int d[15], w[15];
int dp[15][15]; int calc(int x){
int cn=0;
while(x){
x/=10;
++cn;
}
return cn;
} void dfs(int pos,bool state){
if(pos>wei){
++ans;
return;
}
if(pos==1){
if(state){
rep(i,1,d[pos]){
w[pos]=i;
dfs(pos+1,i==d[pos]);
}
}else{
rep(i,1,9){
w[pos]=i;
dfs(pos+1,state);
}
}
}else{
if(state){
rep(i,1,d[pos]){
if(w[pos-1]%i==0){
w[pos]=i;
dfs(pos+1,i==d[pos]);
}
}
}else{
rep(i,1,9){
if(w[pos-1]%i==0){
w[pos]=i;
dfs(pos+1,state);
}
}
}
}
} int main(){ cin>>T;
while(T--){
scanf("%d%d",&L,&R); L--;
int tempL=L;
wei=calc(L);
rep2(i,wei,1){
d[i]=(L%10);
L/=10;
}
ans=0;
if(tempL==0){
ans=0;
}else{
dfs(1,true);
}
ans1=ans; mem(dp,0);
rep(i,1,9) dp[1][i]=1;
rep(i,2,wei-1){
rep(j,1,9){
rep(k,1,9){
if(j%k==0){
dp[i][j]+=dp[i-1][k];
}
}
}
}
rep(i,1,wei-1){
rep(j,1,9) ans1+=dp[i][j];
} wei=calc(R);
rep2(i,wei,1){
d[i]=(R%10);
R/=10;
}
ans=0;
dfs(1,true);
ans2=ans; mem(dp,0);
rep(i,1,9) dp[1][i]=1;
rep(i,2,wei-1){
rep(j,1,9){
rep(k,1,9){
if(j%k==0){
dp[i][j]+=dp[i-1][k];
}
}
}
}
rep(i,1,wei-1){
rep(j,1,9) ans2+=dp[i][j];
} printf("%d\n",ans2-ans1);
} return 0;
}

hdu 5179 beautiful number(构造,,,,)的更多相关文章

  1. hdu 5179 beautiful number

    beautiful number 问题描述 令 A = \sum_{i=1}^{n}a_i * {10}^{n-i}(1\leq a_i \leq 9)A=∑​i=1​n​​a​i​​∗10​n−i​ ...

  2. HDU 5179 beautiful number (数位dp / 暴力打表 / dfs)

    beautiful number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. HDU 5179 beautiful number 数位dp

    题目链接: hdu: http://acm.hdu.edu.cn/showproblem.php?pid=5179 bc(中文): http://bestcoder.hdu.edu.cn/contes ...

  4. hdu 5179 beautiful number(数位dp)

    原题链接 题意:求[l,r]中高位%低位等于0的数字个数.(不含0)分析:此题有三种方法.1.暴搜,毕竟最多才10个位.2.数位dp,预处理好整体的,再处理细节. dp[i][j]表示第i位上的数字位 ...

  5. 【HDOJ】5179 beautiful number

    DFS. /* 5179 */ #include <iostream> #include <algorithm> #include <map> #include & ...

  6. hdu 5898 odd-even number 数位DP

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

  7. hdu 2665 Kth number

    划分树 /* HDU 2665 Kth number 划分树 */ #include<stdio.h> #include<iostream> #include<strin ...

  8. Codeforces 55D Beautiful Number

    Codeforces 55D Beautiful Number a positive integer number is beautiful if and only if it is divisibl ...

  9. hdu 4670 Cube number on a tree(点分治)

    Cube number on a tree Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/ ...

随机推荐

  1. Docker入门系列之一:什么是Docker?

    原文作者:Jeff Hale 原文地址:https://towardsdatascience.com/learn-enough-docker-to-be-useful-b7ba70caeb4b 翻译: ...

  2. 关于PHP数组Key的强制类型转换

    PHP是弱类型语言,就像JavaScript一样,在定义变量时,不需要强制指定变量的类型.同时,PHP又有着强大的数组功能,数组的Key即可以是普通的数字类型下标,也可以是字符串类型的Hash键值,那 ...

  3. Java基础系列(37)- 数组下标越界及小结

    数组的四个基本特点 其长度是确定的,数组一旦被创建,它的大小就是不可以改变的 其元素必须是相同类型,不允许出现混合类型 数组中的元素可以是任何数据类型,包括基本类型和引用类型 数组变量属于引用类型,数 ...

  4. lightweight openpose 入门实操笔记(pytorch环境)

    最近有个小项目要搞姿态识别,简单调研了一下2D的识别: 基本上是下面几种 (单人)single person 直接关键点回归 heatmap,感觉其实就是把一个点的标签弄成一个高斯分布 (多人)mul ...

  5. 使用uView UI+UniApp开发微信小程序--微信授权绑定和一键登录系统

    在前面随笔<使用uView UI+UniApp开发微信小程序>和<使用uView UI+UniApp开发微信小程序--判断用户是否登录并跳转>介绍了微信小程序的常规登录处理和验 ...

  6. python学习笔记(六)-集合

    集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetric differenc ...

  7. 当你创建了一个 Deployment 时,Kubernetes 内部发生了什么?

    我们通常使用 kubectl 来管理我们的 Kubernetes 集群. 当我们需要一个 Nginx 服务时,可以使用以下命令来创建: kubectl create deployment nginx ...

  8. 踩坑系列《三》 java -version 报错出现Error occurred during initialization of VM java/lang/NoClassDefFoundError:

    之前导入一个项目,因为该项目Spring版本过低,只能适用于1.7版本,装了jdk1.7版本.安装配置好后,打开cmd窗口,执行 java -version 指令发现没像正常一样显示版本信息,而是报了 ...

  9. mysql从零开始之MySQL PHP 语法

    MySQL PHP 语法 MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP,在这些语言中,MySQL 在 PHP 的 web 开发中是应用最广泛. 在本教程中我们大 ...

  10. Java学习路线【转】

    Java学习路线[转] 第一阶段:JavaSE(Java基础部分) Java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置,程序的执行过程,相 ...