问题 5714 --双控开关

5714: 双控开关

时间限制: 2 Sec  内存限制: 256 MB
提交: 19  解决: 10
[提交][状态][命题人:]

题目描述

双控开关是一个开关同时带常开、常闭两个触点(即为一对)。通常用两个双控开关控制一个灯或其它电器,意思就是可以有两个开关来控制灯具等电器的开关,比如,在楼下时打开开关,到楼上后关闭开关。

现在有 n 盏灯和 m 个开关,初始有一些灯是开着的,有一些灯是关闭的。
一个开关可以控制多盏灯,按下开关后,其相关的灯的状态都会改变(开灯会变关灯,关灯会变开灯)。
已知每盏灯都恰好被 2 个开关控制,判断能否通过按下若干开关,使得所有灯都是开灯状态。

输入

第一行包含两个正整数 n,m (2≤n≤10^5, 2≤m≤10^5) ,表示灯数和开关数。
第二行包含 n 个整数 a[1],a[2],...,a[n] (0≤a[i]≤1) ,表示每盏灯初始状态。若第 i 盏灯是开着的,则 a[i]=1 ;若第 i 盏灯是关闭的,则 a[i]=0 。
接下来 m 行,每行包含一个整数 b[i] (1≤b[i]≤n) ,和 b[i] 个整数 c[i][1],c[i][2],...,c[i][b[i]] ,表示第 i 个开关控制 b[i] 盏灯,编号分别为 c[i][1],c[i][2],...,c[i][b[i]] 。

输出

若能通过按下若干开关,使得所有灯都是开灯状态,则输出 "YES" ,反之输出 "NO" 。
样例输入
Copy
样例1:
3 3
1 0 1
2 1 3
2 1 2
2 2 3

样例2:
3 3
1 0 1
3 1 2 3
1 2
2 1 3

样例3:
3 3
1 0 1
3 1 2 3
2 1 2
1 3
样例输出
Copy
样例1:
NO

样例2:
YES

样例3:
NO

提示

样例解释
在样例 2 中,可以按下第 2 个和第 3 个开关,使得所有灯都打开。

来源

[提交][状态]