結果
問題 | No.2236 Lights Out On Simple Graph |
ユーザー |
|
提出日時 | 2023-03-04 18:17:57 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 939 ms / 4,000 ms |
コード長 | 805 bytes |
コンパイル時間 | 152 ms |
コンパイル使用メモリ | 82,208 KB |
実行使用メモリ | 169,688 KB |
最終ジャッジ日時 | 2024-09-18 01:20:56 |
合計ジャッジ時間 | 29,746 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 57 |
ソースコード
N,M = map(int,input().split())edge = []for _ in range(M):a,b = map(int,input().split())a -= 1b -= 1edge.append((1 << a) | (1 << b))c = list(map(int,input().split()))C = 0for i in range(N):if c[i] == 1:C |= 1 << iimport sysD = M // 2E = M - Dd = dict()for bit in range(1 << D):count = 0tmp = 0for i in range(D):if bit >> i & 1:count += 1tmp ^= edge[i]if tmp in d:d[tmp] = min(d[tmp],count)else:d[tmp] = countans = 50for bit in range(1 << E):count = 0tmp = 0for i in range(E):if bit >> i & 1:count += 1tmp ^= edge[D + i]if tmp ^ C in d:ans = min(ans,count + d[tmp ^ C])if ans == 50:print(-1)else:print(ans)