日期:2026年3月26日
ZeroJudge 題目連結:c139. 00291 - The House Of Santa Claus
解題想法
先用一個陣列儲存每個節點可以連接的節點編號,再寫一個自訂函式,用遞迴及回溯跑所有可能的畫法。
Python 程式碼
使用時間約為 7 ms,記憶體約為 2.9 MB,通過測試。
def solve():
import sys
ans = []
graph = [[], [2, 3, 5], [1, 3, 5],
[1, 2, 4, 5], [3, 5], [1, 2, 3, 4]]
def backtrack(u, path, visited):
if len(path) == 9:
ans.append(path)
return
for v in graph[u]:
if (u, v) in visited or (v, u) in visited: continue
visited.add((u, v))
visited.add((v, u))
backtrack(v, path + [v], visited)
visited.remove((u, v))
visited.remove((v, u))
backtrack(1, [1], set())
result = ["".join(map(str, a)) + "\n" for a in ans]
sys.stdout.write("".join(result))
if __name__ == "__main__":
solve()