結果
問題 | No.1689 Set Cards |
ユーザー |
|
提出日時 | 2021-09-30 06:15:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 177 ms / 2,000 ms |
コード長 | 736 bytes |
コンパイル時間 | 203 ms |
コンパイル使用メモリ | 82,016 KB |
実行使用メモリ | 90,380 KB |
最終ジャッジ日時 | 2024-07-17 08:59:22 |
合計ジャッジ時間 | 5,609 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
#!/usr/bin/env python3 # from typing import * import sys import io import math import collections import decimal import itertools import bisect import heapq def input(): return sys.stdin.readline()[:-1] # sys.setrecursionlimit(1000000) # _INPUT = """3 # 2 1 2 # 2 1 3 # 2 2 3 # """ # sys.stdin = io.StringIO(_INPUT) INF = 10**10 MOD = 998244353 N = int(input()) S = [] for _ in range(N): dat = list(map(int, input().split())) s = 0 for c in dat[1:]: s |= (1<<(c-1)) S.append(s) n = 0 for mask in range(1, 1<<12): k = bin(mask).count("1") v = len([s for s in S if (mask & s == mask)]) n += ((-1)**(k-1) * (pow(2, v, MOD) - 1)) % MOD ans = (pow(2, N, MOD) - 1 - n) % MOD print(ans)