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