結果
| 問題 |
No.3 ビットすごろく
|
| コンテスト | |
| ユーザー |
human_cipher
|
| 提出日時 | 2021-06-15 01:41:42 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 821 bytes |
| コンパイル時間 | 195 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 13,952 KB |
| 最終ジャッジ日時 | 2024-12-25 14:50:53 |
| 合計ジャッジ時間 | 2,534 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 31 WA * 2 |
ソースコード
from collections import Counter
from collections import deque
def hw(s):
return bin(s).count("1")
def solve(n):
G = [set() for _ in range(n+1)] #G[i]:i番目のマスからいけるマス
for i in range(1,n+1):
hwi = hw(i)
if 1 <= i - hwi <= n:
G[i].add(i-hwi)
if 1 <= i + hwi <= n:
G[i].add(i+hwi)
INF = n
D = [INF for _ in range(n+1)] #D[i]:マス1からの最短距離
DQ = deque()
DQ.append(1)
D[1] = 1
while len(DQ) > 0:
now = DQ.popleft()
for nx in G[now]:
if D[nx] == INF:
D[nx] = D[now] + 1
DQ.append(nx)
if D[n] != INF:
return D[n]
else:
return -1
def main():
n = int(input())
print(solve(n))
if __name__ == "__main__":
main()
human_cipher