QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 1024 MB 總分: 100

#5201. 仙人掌遇上环面

统计

Alice 有一张漂亮的仙人掌图,她想把它放在一张纸上。Eve 威胁说要取走仙人掌中的一个环,并沿着这个环的所有边剪开纸张。这样,纸张就会被分成两部分,Alice 会很不高兴。幸运的是,Barbara 刚刚给了 Alice 一个纸质环面——一张上下边相连、左右边相连且没有扭曲的纸。在环面上,有时你可以沿着一个环的所有边剪开纸张,但它仍然保持为一个整体。请帮助 Alice 判断她是否可以将仙人掌放在环面上,使得 Eve 无法通过沿着一个环剪开纸张而将环面分成两个不连通的部分。

仙人掌是一个连通的无向图,其中每条边最多位于一个简单环上。直观地说,仙人掌是树的一种推广,允许存在一些环。仙人掌中不允许有多重边(一对顶点之间有多条边)和自环(连接顶点到自身的边)。

我们称一个图被放置在纸上,如果每个顶点都是纸上的一个点,每条边是对应顶点之间的线段,且这些线段仅在端点处相交。在环面上,线段可以穿过纸的边缘任意多次。

输入格式

输入包含一个或多个独立的测试用例。

每个测试用例的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 10^5$; $0 \le m \le 10^5$),其中 $n$ 是图中的顶点数。顶点编号为 $1$ 到 $n$。图的边由一组边不相交的路径表示,其中 $m$ 是这些路径的数量。

接下来的 $m$ 行,每行包含图中的一条路径。路径以一个整数 $s_i$ ($2 \le s_i \le 1000$) 开头,后跟 $s_i$ 个 $1$ 到 $n$ 之间的整数。这些 $s_i$ 个整数表示路径上的顶点。路径中相邻的顶点是不同的。路径可以多次经过同一个顶点,但每条边在整个测试用例中恰好被遍历一次。图中不存在多重边(任意两个顶点之间最多只有一条边)。

输入在所有测试用例之后以两个零结束。这不定义测试用例,仅标记输入的结束,不需要输出。

输入中的所有图都是仙人掌。整个输入中 $n$ 的总和与 $m$ 的总和均不超过 $10^5$。

输出格式

按输入中测试用例出现的顺序输出答案。对于每个测试用例,如果可以将仙人掌放在环面上,则输出一行 "Yes",否则输出 "No"。

样例

样例输入 1

6 1
8 1 2 3 1 4 5 6 4
10 2
9 1 2 3 1 10 4 5 6 4
5 7 8 9 7 10
0 0

样例输出 1

Yes
No

说明

图片展示了将第一个测试用例中的仙人掌放置在环面上的一种方式。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.