結果
問題 | No.1689 Set Cards |
ユーザー |
![]() |
提出日時 | 2021-09-24 21:46:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 473 ms / 2,000 ms |
コード長 | 556 bytes |
コンパイル時間 | 193 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 76,928 KB |
最終ジャッジ日時 | 2024-07-05 10:22:43 |
合計ジャッジ時間 | 3,899 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
import sys input = sys.stdin.readline sys.setrecursionlimit(10**7) N = int(input()) dp = [0]*(1<<12) dp[-1] = 1 mod = 998244353 for _ in range(N): new_dp = dp[:] X = list(map(int,input().split())) C = [x-1 for x in X[1:]] set_C = set(C) for i in range(1<<12): d = dp[i] if not d: continue new_id = 0 for j in range(12): if (i>>j) & 1 and j in set_C: new_id ^= 1<<j new_dp[new_id] += d new_dp[new_id] %= mod dp = new_dp ans = dp[0] print(ans)