1134 Vertex Cover (25 point(s))
A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at least one vertex of the set. Now given a graph with several vertex sets, you are supposed to tell if each of them is a vertex cover or not.
Input Specification:
Each input file contains one test case. For each case, the first line gives two positive integers N and M (both no more than 104), being the total numbers of vertices and the edges, respectively. Then M lines follow, each describes an edge by giving the indices (from 0 to N−1) of the two ends of the edge.
After the graph, a positive integer K (≤ 100) is given, which is the number of queries. Then K lines of queries follow, each in the format:
Nv v[1] v[2]⋯v[Nv]
where Nv is the number of vertices in the set, and v[i]'s are the indices of the vertices.
Output Specification:
For each query, print in a line Yes
if the set is a vertex cover, or No
if not.
Sample Input:
Sample Output:
经验总结:
emmmm 其实就是求所给的点能否覆盖所有边,所谓覆盖的意思就是,这个顶点是一条边的其中一个顶点。问题很清楚,最终求得就是所有的边是否被访问到,所以输入时,每个顶点都存储自己可达的所有边的序号,然后根据所给的顶点集,遍历一遍所覆盖的边,最后判断所有的边是否被遍历完全即可~
AC代码