CF1423L.Light switches
省选/NOI-
通过率:0%
时间限制:3.00s
内存限制:1024MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Nikola owns a large warehouse which is illuminated by N light bulbs, numbered 1 to N. At the exit of the warehouse, there are S light switches, numbered 1 to S. Each switch swaps the on/off state for some light bulbs, so if a light bulb is off, flipping the switch turns it on, and if the light bulb is on, flipping the switch turns it off.
At the end of the day, Nikola wants to turn all the lights off. To achieve this, he will flip some of the light switches at the exit of the warehouse, but since Nikola is lazy, he wants to flip the _minimum_ number of switches required to turn all the lights off. Since Nikola was not able to calculate the minimum number of switches, he asked you to help him. During a period of D days, Nikola noted which light bulbs were off and which were on at the end of each day. He wants you to tell him the minimum number of switches he needed to flip to turn all the lights off for each of the D days or tell him that it's impossible.
尼古拉拥有一座大型仓库,仓库内由 N 盏灯泡照明,灯泡编号为 1 至 N。仓库出口处装有 S 个电灯开关,开关编号为 1 至 S。每个开关会翻转(即切换)若干盏灯泡的亮/灭状态:若某盏灯泡当前是熄灭的,拨动该开关将使其点亮;若该灯泡当前是点亮的,拨动该开关将使其熄灭。
每天下班时,尼古拉希望将所有灯泡全部关闭。为此,他将在仓库出口处拨动若干个开关,但由于尼古拉很懒,他希望拨动最少数量的开关,以实现全部关灯的目标。由于尼古拉自己无法算出所需的最少开关数,他请你帮忙解决这个问题。在连续 D 天中,尼古拉记录了每天下班时各灯泡的亮灭状态(即哪些灯泡亮着、哪些灯泡熄灭)。他希望你告诉他:对于这 D 天中的每一天,实现全部关灯所需的最少开关拨动次数是多少;若不可能实现全部关灯,则需明确告知。
输入格式
First line contains three integers, N, S and D (1≤N≤103, 1≤S≤30, 1≤D≤103) – representing number of light bulbs, the number of light switches, and the number of days respectively.
The next S lines contain the description of each light switch as follows: The first number in the line, Ci (1≤Ci≤N), represents the number of light bulbs for which the on/off state is swapped by light switch i, the next Ci numbers (sorted in increasing order) represent the indices of those light bulbs.
The next D lines contain the description of light bulbs for each day as follows: The first number in the line, Ti (1≤Ti≤N), represents the number of light bulbs which are on at the end of day i, the next Ti numbers (sorted in increasing order) represent the indices of those light bulbs.
第一行包含三个整数 N、S 和 D(1≤N≤103,1≤S≤30,1≤D≤103),分别表示灯泡的数量、开关的数量以及天数。
接下来的 S 行描述每个开关:每行第一个数字 Ci(1≤Ci≤N)表示第 i 个开关所控制的灯泡数量(即该开关会翻转这些灯泡的亮/灭状态),随后的 Ci 个数字(按升序排列)表示这些灯泡的编号。
接下来的 D 行描述每天结束时灯泡的状态:每行第一个数字 Ti(1≤Ti≤N)表示第 i 天结束时处于“亮”状态的灯泡数量,随后的 Ti 个数字(按升序排列)表示这些灯泡的编号。
输出格式
Print D lines, one for each day. In the ith line, print the minimum number of switches that need to be flipped on day i, or −1 if it's impossible to turn all the lights off.
输出 D 行,每行对应一天。在第 i 行中,输出第 i 天需要翻转的开关的最小数量;若无法将所有灯关闭,则输出 −1。
输入输出样例
输入#1
4 3 4 2 1 2 2 2 3 1 2 1 1 2 1 3 3 1 2 3 3 1 2 4
输出#1
2 2 3 -1
输入解题思路,AI测评打分。不知道怎么写?