Project Euler 62

13, 23, 33, ... の立方数の各桁の数字をカウントしたとき,
0~9の個数が同じになる立方数は,互いに桁の置き換えを持つ立方数であることに気付きました.

0の個数ごとに枝分かれをし,そのそれぞれのノードから,1の個数ごとに枝分かれをし,...
という多分木を作ることで,ある立方数について各桁の数字のカウント値によってその木を手繰ることを考えると,
同じ葉に行き着く立方数は,最初の説明より,互いに桁の置き換えを持つ立方数だと分かります.
そして同じ葉に行き着く立方数が5つ現れたとき,最初にその葉に行き着いた立方数がこの問題の答えになります.

http://codepad.org/nWli4yR6

(50msで答えを求められるのですが,早すぎて自分でも驚いています)