ICM Technex 2017 and Codeforces Round 400 (Div. 1 + Div. 2, combined)
D
The Door Problem
Codeforces
2000
原题
← CE →
翻译中…

Moriarty has trapped $*n*$ people in $*n*$ distinct rooms in a hotel. Some rooms are locked, others are unlocked. But, there is a condition that the people in the hotel can only escape when all the doors are unlocked at the same time. There are $*m*$ switches. Each switch control doors of some rooms, but each door is controlled by exactly two switches.

翻译中…

You are given the initial configuration of the doors. Toggling any switch, that is, turning it ON when it is OFF, or turning it OFF when it is ON, toggles the condition of the doors that this switch controls. Say, we toggled switch $1$, which was connected to room $1$, $2$ and $3$ which were respectively locked, unlocked and unlocked. Then, after toggling the switch, they become unlocked, locked and locked.

翻译中…

You need to tell Sherlock, if there exists a way to unlock all doors at the same time.

翻译中…

Input

翻译中…

First line of input contains two integers $*n*$ and $*m*$ ($2 ≤ *n* ≤ 10^{5}$, $2 ≤ *m* ≤ 10^{5}$) — the number of rooms and the number of switches.

翻译中…

Next line contains $*n*$ space-separated integers $*r*_{1}, *r*_{2}, ..., *r*_{*n*}$ ($0 ≤ *r*_{*i*} ≤ 1$) which tell the status of room doors. The $*i*$-th room is locked if $*r*_{*i*} = 0$, otherwise it is unlocked.

翻译中…

The $*i*$-th of next $*m*$ lines contains an integer $*x*_{*i*}$ ($0 ≤ *x*_{*i*} ≤ *n*$) followed by $*x*_{*i*}$ distinct integers separated by space, denoting the number of rooms controlled by the $*i*$-th switch followed by the room numbers that this switch controls. It is guaranteed that the room numbers are in the range from $1$ to $*n*$. It is guaranteed that each door is controlled by exactly two switches.

翻译中…

Output

翻译中…

Output "YES" without quotes, if it is possible to open all doors at the same time, otherwise output "NO" without quotes.

翻译中…

Note

翻译中…

In the second example input, the initial statuses of the doors are $[1, 0, 1]$ ($0$ means locked, $1$ — unlocked).

翻译中…

After toggling switch $3$, we get $[0, 0, 0]$ that means all doors are locked.

翻译中…

Then, after toggling switch $1$, we get $[1, 1, 1]$ that means all doors are unlocked.

翻译中…

It can be seen that for the first and for the third example inputs it is not possible to make all doors unlocked.

翻译中…

样例

Input #1
3 3
1 0 1
2 1 3
2 1 2
2 2 3
Output #1
NO
InputCopy OutputCopy
Input #2
3 3
1 0 1
3 1 2 3
1 2
2 1 3
Output #2
YES
InputCopy OutputCopy
Input #3
3 3
1 0 1
3 1 2 3
2 1 2
1 3
Output #3
NO
InputCopy OutputCopy
题目信息
题号
776D
时间限制
2 s
内存限制
256 MB
标签
2-SAT
DFS 及类似
并查集
图论

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。