lcm(1,2,3,4,5,6,7,8,9)=2520lcm(1,2,3,4,5,6,7,8,9)=2520lcm(1,2,3,4,5,6,7,8,9)=2520
- 若 xxx 能被它自己的所有非零位的数字整除,即能被它们的最小公倍数整除, x≡0(mod lcm({digit[i]}))x \equiv 0(mod\ lcm(\{digit[i]\}))x≡0(mod lcm({digit[i]}));
- 2520≡0(mod lcm({digit[i]}))2520 \equiv 0(mod\ lcm(\{digit[i]\}))2520≡0(mod lcm({digit[i]}))
- 若 x≡0(mod lcm({digit[i]}))x \equiv 0(mod\ lcm(\{digit[i]\}))x≡0(mod lcm({digit[i]})),则 (x mod 2520)≡0(mod lcm({digit[i]}))(x\ mod\ 2520) \equiv 0(mod\ lcm(\{digit[i]\}))(x mod 2520)≡0(mod lcm({digit[i]}))
由以上可得,判断 xxx 只需判断 x mod 2520x\ mod\ 2520x mod 2520。
- 令
dp[i][j][k]
表示前 iii 位所表示的数模 252025202520 的余数为 jjj,这 iii 位中非零数字的最小公倍数为 kkk,这样需要的空间为 dp[20][2525][2525]dp[20][2525][2525]dp[20][2525][2525],明显 MLEMLEMLE; - 考虑到 252025202520 的约数共 484848 个,所以,可以将最小公倍数离散化,将 kkk 换为最小公倍数在 252025202520 所有约数中的编号,最后一维通过离散化降到 505050,从而空间为 dp[20][2525][50]dp[20][2525][50]dp[20][2525][50]。