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. 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.
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 2Sample 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就不行了。

本文介绍了一种名为“CoolGraph”的特殊类型图的生成方法及其判定是否存在完美匹配的问题。通过从后往前检查每个节点的连接状态,判断是否能形成一个覆盖所有节点的匹配。
656

被折叠的 条评论
为什么被折叠?



