当前位置: 代码迷 >> 综合 >> Codeforces 55D Beautiful Numbers(数位dp,能被自己各个位上数字整除的数字个数)
  详细解决方案

Codeforces 55D Beautiful Numbers(数位dp,能被自己各个位上数字整除的数字个数)

热度:32   发布时间:2023-12-08 10:15:50.0

题目链接:
Codeforces 55D Beautiful Numbers
题意:
定义:一个数如果能够被它所有位上非零数字整除那么这个数就是Beautiful Numbers。
给一个区间 [L,R] ,求这个区间Beautiful Numbers的个数。
数据范围: 1LR9?1018
分析:
这道题清新脱俗啊~
首先一个Beautiful Numbers肯定可以被它所有位上的数字的最小公倍数整除。这个最小公倍数最大是:8*9*5*7=2520。而且2520肯定能被实际的最小公倍数整除,经过计算实际的最小公倍数只有48个(也就是1-9数字任意个任意组合的最小公倍数)。
其次高位到低位dfs时,我们记录对每一位取2520的结果 rem 和所有位上的最小公倍数