Little Q loves playing with different kinds of graphs very much. One day he thought about an interesting category of graphs called ``Cool Graph'', which are generated in the following way:
Let the set of vertices be {1, 2, 3, ...,
nn}. You have to consider every vertice from left to right (i.e. from vertice 2 to
nn). At vertice
ii, you must make one of the following two decisions:
(1) Add edges between this vertex and all the previous vertices (i.e. from vertex 1 to
i−1i−1).
(2) Not add any edge between this vertex and any of the previous vertices.
In the mathematical discipline of graph theory, a matching in a graph is a set of edges without common vertices. A perfect matching is a matching that each vertice is covered by an edge in the set.
Now Little Q is interested in checking whether a ''Cool Graph'' has perfect matching. Please write a program to help him.
InputThe first line of the input contains an integer
T(1≤T≤50)T(1≤T≤50), denoting the number of test cases.
In each test case, there is an integer
n(2≤n≤100000)n(2≤n≤100000) in the first line, denoting the number of vertices of the graph.
The following line contains
n−1n−1 integers
a2,a3,...,an(1≤ai≤2)a2,a3,...,an(1≤ai≤2), denoting the decision on each vertice.OutputFor each test case, output a string in the first line. If the graph has perfect matching, output ''Yes'', otherwise output ''No''.
Sample Input
3
2
1
2
2
4
1 1 2
Sample Output
Yes
No
No
题意:真的有必要好好分析英语长短句。
a matching in a graph is a set of edges without common vertices.(图的匹配是边的集合,没有公共点的边的集合)A perfect matching is a matching that each vertice is covered by an edge in the set.(每一个顶点被一条边覆盖,被边的集合里的一条边覆盖)
问能否找到一个边集使得每一个顶点都被一条边覆盖。
类似于图的完全匹配(每个顶点只有一条边),所以n为奇数的时候肯定不行。
不用图的完全匹配是n太大了,而且建图规则已经告诉了。
所以从后往前如果是1,++,如果是2,--,如果小于0就不行了。