結果
問題 | No.3 ビットすごろく |
ユーザー | bellangeldindon |
提出日時 | 2017-06-02 13:58:38 |
言語 | Python2 (2.7.18) |
結果 |
RE
|
実行時間 | - |
コード長 | 854 bytes |
コンパイル時間 | 50 ms |
コンパイル使用メモリ | 6,944 KB |
実行使用メモリ | 7,424 KB |
最終ジャッジ日時 | 2024-09-21 22:11:56 |
合計ジャッジ時間 | 2,589 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | RE | - |
testcase_01 | RE | - |
testcase_02 | RE | - |
testcase_03 | RE | - |
testcase_04 | RE | - |
testcase_05 | RE | - |
testcase_06 | RE | - |
testcase_07 | RE | - |
testcase_08 | RE | - |
testcase_09 | RE | - |
testcase_10 | RE | - |
testcase_11 | RE | - |
testcase_12 | RE | - |
testcase_13 | RE | - |
testcase_14 | RE | - |
testcase_15 | RE | - |
testcase_16 | RE | - |
testcase_17 | RE | - |
testcase_18 | RE | - |
testcase_19 | RE | - |
testcase_20 | RE | - |
testcase_21 | RE | - |
testcase_22 | RE | - |
testcase_23 | RE | - |
testcase_24 | RE | - |
testcase_25 | RE | - |
testcase_26 | AC | 11 ms
6,272 KB |
testcase_27 | RE | - |
testcase_28 | RE | - |
testcase_29 | RE | - |
testcase_30 | RE | - |
testcase_31 | RE | - |
testcase_32 | RE | - |
ソースコード
def bitone(n): cnt = 0 m = n while m > 0: if m % 2 == 1: cnt += 1 m = m / 2 return cnt def maketree(i, n, memo): left = [] right = [] p = i + bitone(i) m = i - bitone(i) nmemo = memo if p <= n and not(p in memo): nmemo.append(p) if m >= 1 and not(m in memo): nmemo.append(m) if p in nmemo: left = maketree(p, n, nmemo) if m in nmemo: right = maketree(m, n, nmemo) return [i, left, right] def bfs(tree, n): lst = [tree] search = [tree] cnt = 1 while lst != []: nsearch = [] for i in range(0, len(search)): node = lst.pop(0) if node[0] == n: return cnt if node[1] != []: nsearch.append(node[1]) lst.append(node[1]) if node[2] != []: nsearch.append(node[2]) lst.append(node[2]) search = nsearch cnt += 1 return -1 n = int(raw_input()) tree = maketree(1, n, [1]) print bfs(tree, n)