题目描述

给出两个数 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$说明可行

 //minamoto
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
ll dp[][][],a,b;
int num[],len;
ll dfs(int pos,int p,int s1,int s2,bool flag){
if(!pos) return s1==p&&s2==;
if(s1>p||s1+pos*<p) return ;
if((~dp[pos][s1][s2])&&(!flag)) return dp[pos][s1][s2];
ll res=;int lim=flag?num[pos]:;
for(int i=;i<=lim;++i)
res+=dfs(pos-,p,s1+i,(s2*+i)%p,flag&&i==lim);
if(!flag) dp[pos][s1][s2]=res;
return res;
}
ll solve(ll x){
len=;
for(;x;x/=) num[++len]=x%;
if(!len) return 0ll;
ll res=;
for(int i=;i<=len*;++i){
memset(dp,-,sizeof(dp));
res+=dfs(len,i,,,);
}
return res;
}
int main(){
//freopen("testdata.in","r",stdin);
scanf("%lld%lld",&a,&b);
printf("%lld\n",solve(b)-solve(a-));
return ;
}

[BZOJ1799][Ahoi2009]self 同类分布(数位dp)的更多相关文章

  1. BZOJ1799 [Ahoi2009]self 同类分布[数位DP]

    求出[a,b]中各位数字之和能整除原数的数的个数. 有困难的一道题.被迫看了题解:枚举每一个各位数字的和($<=162$),设计状态$f[len][sum][rest]$表示dp后面$len$位 ...

  2. bzoj 1799: [Ahoi2009]self 同类分布 数位dp

    1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Descripti ...

  3. [BZOJ1799][AHOI2009]同类分布(数位DP)

    1799: [Ahoi2009]self 同类分布 Time Limit: 50 Sec  Memory Limit: 64 MBSubmit: 1635  Solved: 728[Submit][S ...

  4. 【数位dp】bzoj1799: [Ahoi2009]self 同类分布

    各种奇怪姿势的数位dp Description 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. Sample Input 10 19 Sample Output 3 HINT [约束条 ...

  5. BZOJ1799 self 同类分布 数位dp

    BZOJ1799self 同类分布 去博客园看该题解 题意 给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数. [约束条件]1 ≤ a ≤ b ≤ 10^18 题解 1.所有的位数之和&l ...

  6. bzoj1799同类分布——数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1799 数位DP. 1.循环方法 预处理出每个位数上,和为某个数,模某个数余某个数的所有情况: ...

  7. [luogu4127 AHOI2009] 同类分布 (数位dp)

    传送门 Solution 裸数位dp,空间存不下只能枚举数字具体是什么 注意memset最好为-1,不要是0,有很多状态答案为0 Code //By Menteur_Hxy #include < ...

  8. bzoj1799: [Ahoi2009]self 同类分布

    数位dp 先从1到162枚举各位数之和 s[i][j][k][l]表示i位数,第一位小于等于j,当前各位数字和为k,当前取模余数为l的方案数 然后脑补一下转移就行了 详见代码 #include < ...

  9. BZOJ 1799 同类分布(数位DP)

    给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数.1<=a<=b<=1e18. 注意到各位数字之和最大是153.考虑枚举这个东西.那么需要统计的是[0,a-1]和[0,b ...

随机推荐

  1. Java-API:java.text.SimpleDateFormat

    ylbtech-Java-API:java.text.SimpleDateFormat 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 0. https://do ...

  2. MySQL 学习五 SQL实用函数

    0 select now() 显示当前时间. 1 select char_length('andyqan')   显示字符长度. 2 日期格式化         select date_format( ...

  3. 将openfire部署到CentOS云服务器上

    http://ishere.cn/2014/07/25/centos-64bit-openfire.html      CentOS 64位安装openfire http://www.cnblogs. ...

  4. 重命名File

    File completeFile = new File(mFilePath + mFileName); if (completeFile.exists()) { File fileWithSuffi ...

  5. eclipse 报错:GC overhead limit exceeded

    还是eclipse内存问题 修改eclipse.ini -Xms512m -Xmx1024m 必要的情况下, 添加 -XX:MaxPermSize=1024M  表示在编译文件时一直占有最大内存

  6. jQuery-图片的放大镜显示效果(需要大小图)

    1.default.aspx <%@ Page Language=.2em; height:.1em; text-align:center; font-size:128px;}    .zxx_ ...

  7. jQuery获取多种值的方法

    **jQuery 1.3.2版本下的 jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置** 1.判断是否已经打 ...

  8. day35 02-Hibernate持久化对象状态及状态转换

    hibernate内置有一个c3p0,不用引入c3p0的jar包也行. 现在其实可以不用去创建表和实体类.因为hibernate可以自动帮我们生成.只要把映射建好了它就可以自动帮我们生成. 创建实体类 ...

  9. PHP trim() 函数

    定义和用法 trim() 函数从字符串的两端删除空白字符和其他预定义字符. 语法 trim(string,charlist) 参数 描述 string 必需.规定要检查的字符串. charlist 可 ...

  10. iOS UITableView制作类似QQ好友列表视图

                #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDele ...