CF1423L Light switches
题目描述
Nikola 拥有一个大型仓库,仓库内有 $N$ 个灯泡,编号为 $1$ 到 $N$。在仓库的出口处,有 $S$ 个开关,编号为 $1$ 到 $S$。每个开关可以切换一些灯泡的开关状态,也就是说,如果某个灯泡是关闭的,按下开关会将其打开;如果灯泡是打开的,按下开关会将其关闭。
每天结束时,Nikola 想要将所有灯泡都关闭。为此,他会在仓库出口处按下一些开关,但由于 Nikola 很懒,他希望按下的开关数量尽可能少。由于 Nikola 无法计算出最少需要按下多少个开关,他请求你帮忙。在 $D$ 天的时间里,Nikola 记录了每天结束时哪些灯泡是关闭的,哪些是开启的。他希望你告诉他,对于每一天,最少需要按下多少个开关才能将所有灯泡关闭,或者告诉他无法实现。
输入格式
第一行包含三个整数 $N$、$S$ 和 $D$($1 \leq N \leq 10^3$,$1 \leq S \leq 30$,$1 \leq D \leq 10^3$),分别表示灯泡的数量、开关的数量和天数。
接下来的 $S$ 行描述每个开关。每行的第一个数字 $C_i$($1 \leq C_i \leq N$)表示第 $i$ 个开关会切换的灯泡数量,接下来的 $C_i$ 个数字(按升序排列)表示这些灯泡的编号。
接下来的 $D$ 行描述每一天结束时灯泡的状态。每行的第一个数字 $T_i$($1 \leq T_i \leq N$)表示第 $i$ 天结束时亮着的灯泡数量,接下来的 $T_i$ 个数字(按升序排列)表示这些灯泡的编号。
输出格式
输出 $D$ 行,每行一个整数。第 $i$ 行输出第 $i$ 天最少需要按下的开关数量,若无法将所有灯泡关闭,则输出 $-1$。
说明/提示
由 ChatGPT 4.1 翻译