链接:https://www.luogu.org/problemnew/show/P4127

题目描述

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

输入输出格式

输入格式:

一行,两个整数 aa 和 bb

输出格式:

一个整数,表示答案

输入输出样例

输入样例#1: 复制

10 19

输出样例#1: 复制

3

说明

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

题解:数位dp, 但有一个问题,我们不知道各个数位数字之和;18*9是很小的,我们枚举一个一个试就可以了,这次学会了不用存顶上界,特判,情况少

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int digit[20];
ll dp[20][200][2][200];
ll dfs(int dep, int yu, int f, int t, int now, int sum){if(!dep) return !yu && sum == now;if(sum > now || sum + dep * 9 < now)return 0;if(dp[dep][yu][f][sum] != -1)return dp[dep][yu][f][sum];int i = f ? digit[dep] : 9;ll tmp = 0;for(; i >= 0; i--) {tmp += dfs(dep-1, (yu*10 + i) % now, f&(i == digit[dep]), i, now, sum+i);}return dp[dep][yu][f][sum] = tmp;
}ll get(ll a){int cnt = 0;int now = 0;while(a){digit[++cnt] = a % 10;a /= 10;now += digit[cnt];}ll ans = 0;for(int i = 1; i <= 9*cnt; i++){memset(dp, -1, sizeof(dp));ans += dfs(cnt, 0, 1, 0, i, 0);}    return ans;
}
// 1000000 7000000000000int main(){int kk = clock();ll L, R;cin>>L>>R;ll ans1 = get(L-1);ll ans2 = get(R);cout<<ans2-ans1<<endl;int cc = clock();//cout<<cc-kk;
}

View Code

转载于:https://www.cnblogs.com/EdSheeran/p/9397195.html

P4127 [AHOI2009]同类分布相关推荐

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

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

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

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

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

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

  4. 【题解】 P4127 [AHOI2009]同类分布

    \(Description:\) 给出两个数a,b,求出\([a,b]\)中各位数字之和能整除原数的数的个数. $Sample $ \(Input:\) 10 19 \(Sample\) \(Outp ...

  5. [AHOI2009]同类分布

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

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

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

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

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

  8. [BZOJ1799][Ahoi2009]self 同类分布(数位dp)

    题目描述 给出两个数 a,ba,b ,求出 [a,b][a,b] 中各位数字之和能整除原数的数的个数. 输入输出格式 输入格式: 一行,两个整数 aa 和 bb 输出格式: 一个整数,表示答案 输入输 ...

  9. ANOI 2009 【同类分布】

    好累啊啊啊~~~~~~,刷了一天的题了,嗯,再写两篇题解我就去颓Slay... 思路分析: 刚刚我们讲了数位DP,现在就感受一下吧.(其实我也就只敢做做安徽的题,四川的数位DP想都不敢想) 嗯好,我们 ...

最新文章

  1. Could not get unknown property ‘compileSdkVersion‘ for project
  2. 公式没有编号_知乎公式编辑器的一些小技巧 amp; 使用规范
  3. 全桥整流等效负载阻抗是多少?
  4. Java并发编程(十三)同步容器类
  5. 被一帮小姐姐围着是什么感觉?
  6. PCL中点云可视化:坐标字段、随机、单一颜色、法向量
  7. 算法与数据结构1800题 之 栈和队列
  8. vscode 默认初始化_前端vscode 环境初始化
  9. android文本后面显示按钮,按下按钮后显示文本android
  10. wordpress去掉index.php,wordpress去掉url中index.php 创建分类目录404如何解决
  11. iOS 9检测QQ、微信是否安装
  12. IDEA有了这款Maven插件,再次彰显牛逼,再也不用手动写代码了~
  13. matlab自己还原魔方,复原魔方,原来这么简单(内附详细图文解说)
  14. Unity简易小地图制作
  15. Server 2012 R2 RMS文档管理系统
  16. python 绝对值最小值的 正数_找出有序数组中绝对值最小的数
  17. 笔记7.28 数据库经典问题
  18. Empty4Raycast 空白背景图片点击
  19. Bugku:杂项 爆照(08067CTF)
  20. 轻松的玩转Docker的15个小技巧

热门文章

  1. Docker命令基础 简洁版本
  2. Mybatis框架实现简单的学生管理系统
  3. TablePlus 3中文版
  4. nginx+keepalived双机热备
  5. Nginx在windows上安装 及 Nginx的配置及优化
  6. javascript中的this
  7. 在路上---学习篇(一)Python 数据结构和算法 (4) --希尔排序、归并排序
  8. Mongodb 数据模型概念
  9. AndroidStudio自动补完包的快捷键
  10. Python 学习散记