【题解】 P4127 [AHOI2009]同类分布
\(Description:\)
给出两个数a,b,求出\([a,b]\)中各位数字之和能整除原数的数的个数。
$Sample $ \(Input:\)
10 19
\(Sample\) \(Output:\)
3
\(Solution:\)
设计状态 \(f[len][sum][res]\) 表示倒数还有 \(i\) 位要做,当前的和是 \(sum\) ,摸掉模数后剩下的数是 \(res\),
那么我们直接暴力枚举模数,\(len=0\) 最后判断一下是否 \(sum=mod\) \(\&\&\) \(res=0\) 这个时候可以吧答案返回为 \(1\) 。
那么再套个板子就。。。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b;
const int N=20+1,M=200+1;
int f[N][M][M],digit[N];
inline int dfs(int len,int sum,int res,int p,bool limit){if(len==0) {if(res==0) return (sum==p)?1:0;// 答案的判断,以为这样写可以加速,实际上变慢了。。。return 0;}if(!limit && f[len][sum][res]!=-1) return f[len][sum][res];int ret=0,up_bound=(limit)?digit[len]:9;for(int i=0;i<=up_bound;++i)ret+=dfs(len-1,sum+i,(res*10+i)%p,p,limit&&i==up_bound);return f[len][sum][res]=ret;
}
inline int solve(int n){int cnt=0,ret=0;while(n){digit[++cnt]=n%10;n/=10;}for(int p=1;p<=9*cnt;++p){//最多枚举到各位都是9memset(f,-1,sizeof(f));ret+=dfs(cnt,0,0,p,true);}return ret;
}
signed main(){scanf("%lld%lld",&a,&b);printf("%lld\n",solve(b)-solve(a-1));return 0;
}
转载于:https://www.cnblogs.com/JCNL666/p/10712036.html
【题解】 P4127 [AHOI2009]同类分布相关推荐
- P4127 [AHOI2009]同类分布 数位dp + 对状态剪枝
传送门 文章目录 题意: 思路: 题意: 思路: 比较套路的题,首先也有个明显的状态f[pos][num][sum]f[pos][num][sum]f[pos][num][sum]表示到了pospos ...
- P4127 [AHOI2009]同类分布
链接:https://www.luogu.org/problemnew/show/P4127 题目描述 给出两个数 a,ba,b ,求出 [a,b][a,b] 中各位数字之和能整除原数的数的个数. 输 ...
- 洛谷 P4127 [AHOI2009]同类分布
题意简述 求l~r之间各位数字之和能整除原数的数的个数. 题解思路 数位DP 代码 #include <cstdio> #include <cstring> typedef l ...
- P4127 [AHOI2009]同类分布(数位dp)
洛谷传送门 文章目录 题目描述 解析 代码 题目描述 给出两个数a,b求出[a,b]中各位数字之和能整除原数的数的个数. 1<=a<=b<=1018 解析 容易想到数位dp 但本题的 ...
- [AHOI2009]同类分布
题目描述 给出两个数a,b,求出[a,b]中各位数字之和能整除原数的数的个数. 输入格式 一行,两个整数a和b 输出格式 一个整数,表示答案 输入输出样例 输入 #1 10 19 输出 #1 3 说明 ...
- bzoj 1799: [Ahoi2009]self 同类分布(数位DP)
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MB Submit: 1358 Solved: 592 [Submit] ...
- BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/1799(样例时限设置有问题,应该为 2 ...
- [BZOJ1799][Ahoi2009]self 同类分布(数位dp)
题目描述 给出两个数 a,ba,b ,求出 [a,b][a,b] 中各位数字之和能整除原数的数的个数. 输入输出格式 输入格式: 一行,两个整数 aa 和 bb 输出格式: 一个整数,表示答案 输入输 ...
- ANOI 2009 【同类分布】
好累啊啊啊~~~~~~,刷了一天的题了,嗯,再写两篇题解我就去颓Slay... 思路分析: 刚刚我们讲了数位DP,现在就感受一下吧.(其实我也就只敢做做安徽的题,四川的数位DP想都不敢想) 嗯好,我们 ...
最新文章
- LabVIEW仪表盘识别(实战篇—6)
- “编程能力差的程序员,90%会输在这点上”谷歌AI专家:其实都是瞎努力
- hdu3037 Saving Beans
- 测试驱动的面向对象软件开发(china-pub首发)
- BoltDB 一个简单的纯 Go key/value 存储 [译]
- 操作系统进程同步之吸烟者问题,C语言实现
- 博士申请 | 阿尔伯塔大学招收人工智能方向全奖博士生、硕士生
- 深度学习的坎坷六十年:从感知机到Transformer...
- 网页中实现图片的毛玻璃效果
- SIM卡中的ef文件介绍
- 儿子于靖洋的百天照片
- 数据仓库、数据集市、数据湖,你的企业更适合哪种数据管理架构?
- python或c++编写一个文件传输工具
- 使用基于注意力的编码器-解码器实现医学图像描述
- 金融行业云都有什么需求
- CPU负载很低,loadavg很高处理方法
- 最新版ios权限描述文字plist的权限描述文字短语-定期更新
- 芜湖市中专计算机考证英文名
- 【IC选型 2】运算放大器选型的注意事项,运算放大器的轨到轨什么意思
- 华为mate 30 安装时提示安装包解析失败