結果
問題 | No.3 ビットすごろく |
ユーザー |
![]() |
提出日時 | 2018-09-29 10:28:44 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,557 bytes |
コンパイル時間 | 81 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 24,832 KB |
最終ジャッジ日時 | 2024-10-12 08:10:06 |
合計ジャッジ時間 | 18,242 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 6 OLE * 5 -- * 22 |
ソースコード
# -*- coding: utf-8 -*-# !/usr/bin/env python# vim: set fileencoding=utf-8 :"""## Author: Noname# URL: https://github.com/pettan0818# License: MIT License# Created: 金 9/28 23:04:27 2018# Usage#"""from collections import dequedef get():""""""return int(input())def get_each_cell_num(length):""">>> get_each_cell_num(5)[1, 1, 2, 1, 2]"""def maker(num):return sum([int(i) for i in list(bin(num)[2:])])return [maker(i) for i in range(1, length+1)]def bfs(res, goal, route):QUE = deque([])goal = goal - 1 # 配列と問題文のIndexは1差がある。res[0] = 0counter = 1QUE.append(0)while QUE: # Listが空だとFalse# print(res)counter += 1pos = QUE.popleft()# print(pos)if pos == goal: # ゴールに着いたら探索不要return resfor i in [route[pos], -route[pos]]:next_pos = pos + iif next_pos >= len(res):continueif res[next_pos] != -1:continueif next_pos >= 0:QUE.append(next_pos)print("next_pos: ", next_pos)print("res: ", res)print("QUE: ", QUE)res[next_pos] = counterreturn resdef solve(length):""">>> solve(5)"""res = [-1] * lengthroute = get_each_cell_num(length)a = bfs(res,length, route)print(a[-1])if __name__ == '__main__':solve(get())