Submission #9500952
Source Code Expand
class Solver:
def __init__(self, N, M, edges) -> None:
self.N = N
self.M = M
self.edges = edges
def find_next_node(self, current, visited):
candidates = []
for edge in self.edges:
if edge[0] == current:
candidates.append(edge[1])
if edge[1] == current:
candidates.append(edge[0])
ret = []
for node in candidates:
bit = 2**(node - 1)
if visited & bit == 0:
# AND演算でゼロの場合は未訪問ノード
ret.append(node)
return ret
def dfs(self, node, visited):
"""
visitedのn番目のビットでノードnを訪ずれたか管理する
"""
visited += 2**(node - 1)
if visited == 2**self.N - 1:
return 1
movable_nodes = self.find_next_node(node, visited)
return sum([self.dfs(next_node, visited) for next_node in movable_nodes])
def solve(self) -> int:
return self.dfs(1, 0)
if __name__ == "__main__":
N, M = list(map(int, input().split()))
edges = []
for _ in range(M):
edges.append(list(map(int, input().split())))
s = Solver(N, M, edges)
print(s.solve())
Submission Info
| Submission Time | |
|---|---|
| Task | C - One-stroke Path |
| User | hagino3000 |
| Language | Python (3.4.3) |
| Score | 300 |
| Code Size | 1308 Byte |
| Status | AC |
| Exec Time | 82 ms |
| Memory | 3064 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 17 ms | 3064 KiB |
| sample_02.txt | AC | 17 ms | 3064 KiB |
| subtask_1_01.txt | AC | 17 ms | 3064 KiB |
| subtask_1_02.txt | AC | 17 ms | 3064 KiB |
| subtask_1_03.txt | AC | 17 ms | 3064 KiB |
| subtask_1_04.txt | AC | 82 ms | 3064 KiB |
| subtask_1_05.txt | AC | 17 ms | 3064 KiB |
| subtask_1_06.txt | AC | 17 ms | 3064 KiB |
| subtask_1_07.txt | AC | 17 ms | 3064 KiB |
| subtask_1_08.txt | AC | 18 ms | 3064 KiB |
| subtask_1_09.txt | AC | 18 ms | 3064 KiB |
| subtask_1_10.txt | AC | 22 ms | 3064 KiB |
| subtask_1_11.txt | AC | 21 ms | 3064 KiB |
| subtask_1_12.txt | AC | 42 ms | 3064 KiB |
| subtask_1_13.txt | AC | 68 ms | 3064 KiB |