自我數 x 表示 沒有任何 y+d(y)=x。<d(y)= y各位數之和>

給出 n 與 m,求出 <=n 的 自我數 的 個數 和 給出的 第q[m] 個 自我數。

n = 10^7,貌似可以直接枚舉。

仔細看才發現 他 MLE=4096,如果 bool[N] 就 MLE 了!

d(七位數) 最大=7*9=63,所以只要開 bool[63] 就可以 滾動+cnt 了。

這裡有個 d(x) 的小技巧,可以先把 [1, 10000] 的 d() 算出來。

d(x) = sum[x/10000]+sum[x%10000]。

我的code

http://codepad.org/JFrjRud9

 

文章標籤
創作者介紹
創作者 jghs1328 的頭像
jghs1328

jghs1328

jghs1328 發表在 痞客邦 留言(0) 人氣()