下のコードで回答されている方がいて、
この11行目からのbit演算の処理が理解できず困っています。
ここではどのような処理が行われているのでしょうか?
ご教示よろしくお願いいたします。
python
1N = int(input()) 2 3evidences = [[] for _ in range(N)] 4for i in range(N): 5 A = int(input()) 6 for _ in range(A): 7 x, y = map(int, input().split()) 8 evidences[i].append((x - 1, y)) 9 10result = 0 11for i in range(1, 2 ** N): 12 consistent = True 13 for j in range(N): 14 if (i >> j) & 1 == 0: 15 continue 16 for x, y in evidences[j]: 17 if (i >> x) & 1 != y: 18 consistent = False 19 break 20 if not consistent: 21 break 22 if consistent: 23 result = max(result, bin(i)[2:].count('1')) 24print(result)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 02:41