题意简述

求l~r之间各位数字之和能整除原数的数的个数。

题解思路

数位DP

代码

#include <cstdio>
#include <cstring>
typedef long long ll;
int cnt, C;
int num[20];
ll l, r;
ll dp[20][200][200];
ll dfs(int len, int sum, int rem, int mod, bool limit, ll s = 0)
{if (!len) return sum == mod && rem == 0;ll& dp = ::dp[len][sum][rem];if (!limit && ~dp) return dp;int mx = limit ? num[len] : 9;for (register int i = 0; i <= mx; ++i)s += dfs(len - 1, sum + i, (rem * 10 + i) % mod, mod, limit && (i == mx));if (!limit) dp = s;return s;
}
ll solve(ll x, ll s = 0)
{for (cnt = 0; x; num[++cnt] = x % 10, x = x / 10);C = cnt * 9;for (register int i = 1; i <= C; ++i){memset(dp, -1, sizeof dp);s += dfs(cnt, 0, 0, i, 1);}return s;
}
int main()
{scanf("%lld%lld", &l, &r);printf("%lld\n", solve(r) - solve(l - 1));
}

转载于:https://www.cnblogs.com/xuyixuan/p/9925378.html

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

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

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

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

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

  3. P4127 [AHOI2009]同类分布

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

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

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

  5. 洛谷 - P2051 [AHOI2009]中国象棋(计数dp)

    题目链接:点击查看 题目大意:给出一个 n * m 的棋盘,可以在任意位置放置 "炮",问一共可以放置多少种可行的方案 题目分析:转换题意,就是问每一行.每一列至多有两个棋子的方案 ...

  6. 洛谷 P2051 [AHOI2009]中国象棋 状态压缩思想DP

    P2051 [AHOI2009]中国象棋 题意: 给定一个n*m的空棋盘,问合法放置任意多个炮有多少种情况.合法放置的意思是棋子炮不会相互打到. 思路: 这道题我们可以发现因为炮是隔一个棋子可以打出去 ...

  7. 洛谷2051 [AHOI2009]中国象棋

    题目链接 题意概述:n行m列棋盘放若干个棋子每行每列最多两个求方案总数,答案对9999973取模. 可以比较容易看出这是个dp,设f[i][j][k]表示前i行j列放1个棋子k列放2个棋子的方案总数. ...

  8. 洛谷P2023 [AHOI2009]维护序列

    数据比线段树2要毒瘤,一直60分的原因是: 1.long long 没开 2.没有边做边%或者像我P3373一样写了个看着像的边做边% 3.要看注释的话可以跳到P3373 上代码 1 #include ...

  9. [AHOI2009]同类分布

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

最新文章

  1. Quartz.NET和Log4Net三种输出[转]
  2. web.xml配置详细
  3. 浮层java_css保持浮层水平垂直居中的四种方法
  4. php申请系统,PHP+MYSQL的文章管理系统(一)_php
  5. 32位微处理器的虚拟技术,是“坑爹”么!
  6. C++11系列学习之二-----lambda表达式
  7. python判断对象是否实例化_Python判断对象是否相等及eq函数的讲解
  8. 2018年最佳深度学习书单
  9. 为什么jdk中把String类设计成final
  10. 《异构信息网络挖掘: 原理和方法》—— 1.3 本书的内容组织
  11. JQueryDOM之样式操作
  12. [51单片机] 串口通讯 简单通信
  13. 切割钢板计算机软件,板材切割优化软件钢板开料套料软件 V1.0 官方版
  14. 360浏览器如何改html5,360安全浏览器如何设置为默认浏览器
  15. idea java maven 打包,idea maven项目 基于idea自己打包方式 以及使用maven插件打包的三种方式...
  16. RSA 加解密(Java 实现)
  17. mac 系统服务器地址ping不通,MAC ping IP 地址(ping通/ping不通)
  18. 【Python人工智能】Python全栈体系(二十)
  19. Rstudio永久修改当前工作路径
  20. http报文头各字段详细含义

热门文章

  1. 图的割点(边表集实现)
  2. 为何LPWA对物联网是颠覆性的新网络?
  3. Linux基础优化之SElinux和iptables项
  4. XV6700刷evdo详细教程
  5. java jar包命令行下可以双击不运行解决方法(改变java默认图标)
  6. Linux:nice函数
  7. 【Scratch】青少年蓝桥杯_每日一题_8.03_飞猫
  8. C语言 编写程序,求s不超过2000时n的最大值,s=1+2+3+……+n
  9. vue分页+spring boot +分页插件pagehelper
  10. 最全的电气设备故障诊断法