题目描述

给出两个数 a,ba,b ,求出 [a,b][a,b] 中各位数字之和能整除原数的数的个数。

输入输出格式

输入格式:

一行,两个整数 aa 和 bb

输出格式:

一个整数,表示答案

输入输出样例

输入样例#1: 复制

10 19

输出样例#1: 复制

3

说明

对于所有的数据, 1 ≤ a ≤ b ≤ 10^{18}1≤a≤b≤1018

题解

  数位dp

  至于怎么判是否整除

  我们可以考虑枚举所有位之和是多少

  然后记录一下当前数模所有位之和的余数

  如果为$0$说明可行

 1 //minamoto
 2 #include<cstdio>
 3 #include<cstring>
 4 #define ll long long
 5 using namespace std;
 6 ll dp[25][205][205],a,b;
 7 int num[25],len;
 8 ll dfs(int pos,int p,int s1,int s2,bool flag){
 9     if(!pos) return s1==p&&s2==0;
10     if(s1>p||s1+pos*9<p) return 0;
11     if((~dp[pos][s1][s2])&&(!flag)) return dp[pos][s1][s2];
12     ll res=0;int lim=flag?num[pos]:9;
13     for(int i=0;i<=lim;++i)
14     res+=dfs(pos-1,p,s1+i,(s2*10+i)%p,flag&&i==lim);
15     if(!flag) dp[pos][s1][s2]=res;
16     return res;
17 }
18 ll solve(ll x){
19     len=0;
20     for(;x;x/=10) num[++len]=x%10;
21     if(!len) return 0ll;
22     ll res=0;
23     for(int i=1;i<=len*9;++i){
24         memset(dp,-1,sizeof(dp));
25         res+=dfs(len,i,0,0,1);
26     }
27     return res;
28 }
29 int main(){
30     //freopen("testdata.in","r",stdin);
31     scanf("%lld%lld",&a,&b);
32     printf("%lld\n",solve(b)-solve(a-1));
33     return 0;
34 }

转载于:https://www.cnblogs.com/bztMinamoto/p/9540403.html

[BZOJ1799][Ahoi2009]self 同类分布(数位dp)相关推荐

  1. P4127 [AHOI2009]同类分布 数位dp + 对状态剪枝

    传送门 文章目录 题意: 思路: 题意: 思路: 比较套路的题,首先也有个明显的状态f[pos][num][sum]f[pos][num][sum]f[pos][num][sum]表示到了pospos ...

  2. bzoj 1799: [Ahoi2009]self 同类分布(数位DP)

    1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MB Submit: 1358  Solved: 592 [Submit] ...

  3. BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...

  4. P4127 [AHOI2009]同类分布(数位dp)

    洛谷传送门 文章目录 题目描述 解析 代码 题目描述 给出两个数a,b求出[a,b]中各位数字之和能整除原数的数的个数. 1<=a<=b<=1018 解析 容易想到数位dp 但本题的 ...

  5. bzoj1799 数位dp

    HYSBZ - 1799 题意:给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. 思路:数位dp,比较容易想到是数位dp,关键是dp式比较难想到,数位dp说到底是一个记忆化搜索的过程,d ...

  6. P4127 [AHOI2009]同类分布

    链接:https://www.luogu.org/problemnew/show/P4127 题目描述 给出两个数 a,ba,b ,求出 [a,b][a,b] 中各位数字之和能整除原数的数的个数. 输 ...

  7. 洛谷 P4127 [AHOI2009]同类分布

    题意简述 求l~r之间各位数字之和能整除原数的数的个数. 题解思路 数位DP 代码 #include <cstdio> #include <cstring> typedef l ...

  8. [AHOI2009]同类分布

    题目描述 给出两个数a,b,求出[a,b]中各位数字之和能整除原数的数的个数. 输入格式 一行,两个整数a和b 输出格式 一个整数,表示答案 输入输出样例 输入 #1 10 19 输出 #1 3 说明 ...

  9. 数位dp真·浅谈 By cellur925

    预警:由于是从$Vergil$学长那里和$Mathison$大神那里学来的,所以清一色记忆化搜索!qwq 巨佬的数位dp讲解(未来的咕咕日报头条): https://www.luogu.org/blo ...

最新文章

  1. 遇到的浏览器兼容问题及应对方法
  2. SQL server2008 无法启动调试存储过程
  3. ignite windows无法访问linux ignite集群_Linux常见命令
  4. leetcode算法题--字符串转换整数 (atoi)
  5. python结束线程池正在运行的线程_python之线程与线程池
  6. JAVA——后端Vue动态路由配置类JavaBean封装
  7. C++11库中 steady_clock , system_clock和high_resolution_clock的区别
  8. babel 用法及其 .babelrc 的配置详解,想做前端架构,拒绝一知半解...
  9. 《Cracking the Coding Interview》——第9章:递归和动态规划——题目8
  10. 伯克利:serverless是下一代计算范式
  11. C语言 输入的注意事项 EOF的应用
  12. profibus 主站软件_PROFIBUS网络的DP主站与DP从站
  13. cookie与Session的区别,以及jQuery怎样操作cookie和Session
  14. 粒子群优化算法(PSO)附代码
  15. 怎么在win10服务器上搭建网站,win10怎么搭建web服务器 win10搭建web服务器的方法...
  16. 每个人都可以做到:月入30000的秘籍!
  17. 搭建个人网站(免备案)
  18. mysql数据库统计人数_统计人数 数据库
  19. 已成功与服务器建立连接,但是在登录过程中发生错误。
  20. apache的基本使用

热门文章

  1. python中函数和类的区别_Python中函数和方法的区别
  2. vue项目封装axios
  3. JS页面跳转的各种形式
  4. 三维重建:Kinect几何映射-SDK景深数据处理
  5. java语言程序设计答案_《java语言程序设计》练习题及答案
  6. Linux gcc编译c/c++基本过程
  7. UVA 1625 Color Length DP
  8. 微软反垄断案新突破 Win10系统或需剥离可信计算
  9. ssh-add Could not open a connection to your authentication agent.
  10. android开源项目框架大全:《IT蓝豹》