結果
問題 | No.2152 [Cherry Anniversary 2] 19 Petals of Cherry |
ユーザー |
|
提出日時 | 2022-12-21 09:23:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 473 ms / 1,000 ms |
コード長 | 663 bytes |
コンパイル時間 | 231 ms |
コンパイル使用メモリ | 81,972 KB |
実行使用メモリ | 84,668 KB |
最終ジャッジ日時 | 2024-09-17 21:22:13 |
合計ジャッジ時間 | 22,591 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 49 |
ソースコード
N = 19 bit_count = lambda x: bin(x).count("1") exist_table = [[False] * N for _ in range(N)] for i in range(N): L, *A = map(int, input().split()) for a in A: exist_table[i][a - 1] = True dp0 = [0] * (1 << N) dp1 = [0] * (1 << N) dp0[0] = 1 for b in range(1 << N): sign = True n = bit_count(b) for i in range(N): if (b >> i) & 1: continue sign = not sign if not exist_table[n][i]: continue c = b | (1 << i) if sign: dp1[c] += dp0[b] dp0[c] += dp1[b] else: dp0[c] += dp0[b] dp1[c] += dp1[b] print(dp0[-1], dp1[-1])