結果
問題 |
No.1421 国勢調査 (Hard)
|
ユーザー |
![]() |
提出日時 | 2023-05-24 20:37:03 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 380 ms / 2,000 ms |
コード長 | 689 bytes |
コンパイル時間 | 245 ms |
コンパイル使用メモリ | 12,544 KB |
実行使用メモリ | 11,648 KB |
最終ジャッジ日時 | 2024-12-23 20:55:44 |
合計ジャッジ時間 | 5,550 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 |
ソースコード
import sys readline=sys.stdin.readline N,M=map(int,readline().split()) B,Y=[],[] for m in range(M): readline() B.append(sum(1<<b-1 for b in map(int,readline().split()))) Y.append(int(readline())) ans_lst=[0]*N xor_basis=[] tria=[] tria_Y=[] for b,y in zip(B,Y): for xb,xby in zip(tria,tria_Y): if b>b^xb: b=b^xb y^=xby if b: for j in range(len(tria)): if tria[j]^b<tria[j]: tria[j]^=b tria_Y[j]^=y tria.append(b) tria_Y.append(y) elif y: print(-1) exit() for b,y in zip(tria,tria_Y): ans_lst[b.bit_length()-1]=y print(*ans_lst,sep="\n")