結果
| 問題 |
No.1689 Set Cards
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-02-26 11:59:42 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 504 ms / 2,000 ms |
| コード長 | 688 bytes |
| コンパイル時間 | 440 ms |
| コンパイル使用メモリ | 82,244 KB |
| 実行使用メモリ | 79,316 KB |
| 最終ジャッジ日時 | 2025-02-26 11:59:48 |
| 合計ジャッジ時間 | 5,130 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
MOD = 998244353
N = int(input())
A = []
for _ in range(N):
a = list(map(int,input().split()))
A.append(set(a[1:]))
M = 0
for i in range(N):
a = 0
if len(A[i])==0:
a = 0
else:
a = max(A[i])
M = max(M,a)
I = [set() for _ in range(M+1)]
for j in range(1,M+1):
for i in range(N):
if j in A[i]:
I[j].add(i)
ans = 0
for k in range(1,1<<M):
J = set(list(range(N)))
cnt = 0
for j in range(M):
if (k>>j)&1:
J &= I[j+1]
cnt += 1
if cnt%2==0:
ans = (ans-pow(2,len(J),MOD)+1)%MOD
else:
ans = (ans+pow(2,len(J),MOD)-1)%MOD
ans = (pow(2,N,MOD)-1-ans)%MOD
print(ans)