NISHIO Hirokazu[Translate]
PAST5F

2 ** 14 == 16384
14 * 13 * 12 == 364
これは全探索して良いサイズ
14個の薬品を選ぶすべての方法について、最大364個のすべてのルールを確認して「爆発してないから」「一触即発なら、何が危険な薬品か」をチェックする
問題条件を勘違いしてWA
一触即発状態での「既に混ぜた薬品の数」ではない
「一触即発状態のルールの数」でもない
「一触即発状態のルールの、まだ追加してない薬品」の集合のサイズが答え
python
def solve(N, rules): ret = 0 for subset in range(2 ** N): danger = [] for rs in rules: hit = 0 for r in rs: if subset & (1 << (r - 1)): hit += 1 else: d = r if hit == 3: danger = [] break if hit == 2: danger.append(d) ret = max(ret, len(set(danger))) return ret


"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]