結果
問題 |
No.479 頂点は要らない
|
ユーザー |
![]() |
提出日時 | 2019-03-24 22:08:44 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 845 bytes |
コンパイル時間 | 352 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 268,544 KB |
最終ジャッジ日時 | 2024-10-04 15:39:45 |
合計ジャッジ時間 | 5,616 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 16 TLE * 1 -- * 21 |
ソースコード
from copy import deepcopy N,M = list(map(int, input().split(' '))) G = {} for m in range(M): a,b = list(map(int, input().split(' '))) if a not in G: G[a] = [b] else: G[a].append(b) if b not in G: G[b] = [a] else: G[b].append(a) def remove_edge_on(graph,node): new_graph = deepcopy(graph) for adj in new_graph[node]: new_graph[adj].remove(node) removed_edge = len(new_graph[node]) new_graph[node] = [] return new_graph,removed_edge def solve(graph, i, edge, cost): if edge != M and i == N: return float('inf') if edge == M: return cost new_graph,removed_edge = remove_edge_on(graph, i) return min(solve(graph, i+1, edge, cost), solve(new_graph, i+1, edge+removed_edge, cost+2**i)) print(bin(solve(G,0,0,0))[2:])