下のコードで回答されている方がいて、
この11行目からのbit演算の処理が理解できず困っています。
ここではどのような処理が行われているのでしょうか?
ご教示よろしくお願いいたします。
python
1N, M, X = map(int, input().split()) 2 3C = [] 4A = [] 5for i in range(N): 6 t = list(map(int, input().split())) 7 C.append(t[0]) 8 A.append(t[1:]) 9 10result = -1 11for i in range(1 << N): 12 t = [0] * M 13 c = 0 14 for j in range(N): 15 if (i >> j) & 1 == 0: 16 continue 17 c += C[j] 18 for k in range(M): 19 t[k] += A[j][k] 20 if all(x >= X for x in t): 21 if result == -1: 22 result = c 23 else: 24 result = min(result, c) 25print(result)
回答1件
あなたの回答
tips
プレビュー