結果
問題 | No.2236 Lights Out On Simple Graph |
ユーザー |
|
提出日時 | 2023-03-04 18:35:02 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,833 ms / 4,000 ms |
コード長 | 1,072 bytes |
コンパイル時間 | 309 ms |
コンパイル使用メモリ | 82,252 KB |
実行使用メモリ | 362,684 KB |
最終ジャッジ日時 | 2024-09-18 01:21:59 |
合計ジャッジ時間 | 49,407 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 57 |
ソースコード
import syssys.setrecursionlimit(5*10**5)input = sys.stdin.readlinefrom collections import defaultdict, deque, Counterfrom heapq import heappop, heappushfrom bisect import bisect_left, bisect_rightfrom math import gcdn,m = map(int,input().split())graph = [[] for i in range(n+1)]e = []for i in range(m):a,b = map(int,input().split())graph[a].append(b)graph[b].append(a)e.append([a-1, b-1])c = list(map(int,input().split()))ini = 0for i in range(n):if c[i]:ini |= (1<<i)m1 = m//2m2 = m - m1e1,e2 = e[:m1], e[m1:]d1, d2 = defaultdict(lambda : 10**15),defaultdict(lambda : 10**15)s1,s2 = set(),set()for i in range(2):for bit in range(1<<m1):now = 0cnt = 0for i in range(m1):if (bit >> i) & 1:now ^= 1<<e1[i][0]now ^= 1<<e1[i][1]cnt += 1s1.add(now)d1[now] = min(d1[now], cnt)m1,m2 = m2,m1e1,e2 = e2,e1s1,s2 = s2,s1d1,d2 = d2,d1ans = 10**15for i in s1:if (ini ^ i) in s2:ans = min(ans, d1[i] + d2[ini^i])print(ans) if ans < 10**15 else print(-1)