BZOJ 1799 - [AHOI2009]self 同类分布 - 枚举 数位DP
Description
找出$[L, R]$ 区间内有多少数, 各位数字和 能整除原数
Solution
枚举每个可能的数字和, 进行数位DP即可 , 水爆
Code
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std; int tot = ;
int a[], mod;
ll sum[][][]; ll dfs(int pos, int ad, int r, bool lim, bool lead) {
if(ad > mod)
return ;
if(!pos) return ad == mod && r == ;
if(!lim && !lead && sum[pos][ad][r] != -)
return sum[pos][ad][r];
int up = lim ? a[pos] : ;
ll tmp = ;
for(int i = ; i <= up; ++i) {
tmp += dfs(pos - , ad + i, (r * + i) % mod, lim && a[pos] == i, lead && i == );
}
if(!lim && !lead)
sum[pos][ad][r] = tmp;
return tmp;
} ll work(ll x) {
int len = ;
while(x) a[++len] = x % , x /= ;
return dfs(len, , , true, true);
} int main()
{
ll l, r;
ll ans = ;
scanf("%lld%lld", &l, &r);
for(int i = ; i <= tot; ++i) {
mod = i;
memset(sum, -, sizeof(sum));
ans += work(r) - work(l - );
}
printf("%lld\n", ans);
}
BZOJ 1799 - [AHOI2009]self 同类分布 - 枚举 数位DP的更多相关文章
- bzoj 1799: [Ahoi2009]self 同类分布 数位dp
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Descripti ...
- [BZOJ1799][Ahoi2009]self 同类分布(数位dp)
题目描述 给出两个数 a,ba,b ,求出 [a,b][a,b] 中各位数字之和能整除原数的数的个数. 输入输出格式 输入格式: 一行,两个整数 aa 和 bb 输出格式: 一个整数,表示答案 输入输 ...
- 【BZOJ】1799: [Ahoi2009]self 同类分布
[题意]给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数.1 ≤ a ≤ b ≤ 10^18 [算法]数位DP [题解] 感觉这种方法很暴力啊. 枚举数位和1~162(不能枚举0,不然会模 ...
- bzoj 1799: [Ahoi2009]self 类似的分布 解读
[原标题] 1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MB Submit: 554 Solved: 194 [id ...
- [Ahoi2009]self 同类分布
1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec Memory Limit: 64 MBSubmit: 2357 Solved: 1079[Submit][ ...
- BZOJ1799 [Ahoi2009]self 同类分布[数位DP]
求出[a,b]中各位数字之和能整除原数的数的个数. 有困难的一道题.被迫看了题解:枚举每一个各位数字的和($<=162$),设计状态$f[len][sum][rest]$表示dp后面$len$位 ...
- 【数位dp】bzoj1799: [Ahoi2009]self 同类分布
各种奇怪姿势的数位dp Description 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. Sample Input 10 19 Sample Output 3 HINT [约束条 ...
- 【AHOI2009】同类分布 题解(数位DP)
题目大意:求$[l,r]$中各位数之和能被该数整除的数的个数.$0\leq l\leq r\leq 10^{18}$. ------------------------ 显然数位DP. 搜索时记录$p ...
- bzoj1799: [Ahoi2009]self 同类分布
数位dp 先从1到162枚举各位数之和 s[i][j][k][l]表示i位数,第一位小于等于j,当前各位数字和为k,当前取模余数为l的方案数 然后脑补一下转移就行了 详见代码 #include < ...
随机推荐
- Linux下Shell命令加减乘除计算
使用 expr命令 (其中做乘的时候*号要用斜杠进行转义) 除以 [hadoop-user@hadoop1]$ echo `expr 9 / 3` 3加 [hadoop-use ...
- Mysql 数据类型(基础5)
Mysql 常用的4种数据类型: 整型 int. 浮点型 double. 日期类型 datetime .字符型( varchar char text ) #创建一张表 mysql> create ...
- 第三章 列表(c)有序列表
- openstack(Pike 版)集群部署(三)--- Glance 部署
一.介绍 参照官网部署:https://docs.openstack.org/glance/queens/install/ 继续上一博客进行部署:http://www.cnblogs.com/weij ...
- UVM1
1.UVM: p_sequencer 的使用 http://blog.csdn.net/tingtang13/article/details/46546395
- leetcode题库解答源码(python3)
下面和大家分享本人在leetcode上已经ace的题目源码(python3): 本人会持续更新!- class Leetcode_Solution(object): def twoSum_1(self ...
- RocketMq顺序消费
部分内容出处 https://www.jianshu.com/p/453c6e7ff81c rocketmq内部有4个默认的队里,在发送消息时,同一组的消息需要按照顺序,发送到相应的mq中,同一组 ...
- 微信小程序快速移植支付宝小程序
移植背景: 1. 支付宝小程序开发文档只了解了大致框架,跑了demo,具体Api.组件没太多了解: 2. 已有微信小程序,移植支付宝小程序做预研(主要针对授权登录.支付等功能). 3. 移植的微信小程 ...
- 在CentOS7.4上手动编译安装Mysql-5.7.20
实验环境:CentOS 7.4 mysql软件: mysql-boost-5.7.20.tar.gz 1.安装编译工具 yum -y install \ncurses \ncurses-devel \ ...
- 关于gcc、make和CMake的区别
CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要 ...