QOJ.ac

QOJ

時間限制: 3.0 s 記憶體限制: 512 MB 總分: 100

#11796. 层流族

统计

在研究组合优化时,Lucas 接触到了“层叠集族”(laminar set family)的概念。对于某个集合 $\Omega$,其子集族 $\mathcal{F}$ 被称为层叠的,当且仅当它不包含空集,且对于任意两个不同的集合 $A, B \in \mathcal{F}$,满足 $A \subset B$、$B \subset A$ 或 $A \cap B = \emptyset$。

作为一名经验丰富的出题人,Lucas 总是试图将他学到的新知识应用到编程竞赛题目中。他的研究领域涵盖识别问题,这类问题通常听起来像:“给定某种奇怪的组合性质,检查给定的结构是否满足它”。

Lucas 认为,完美的编程竞赛题目应该包含一棵树。为了将层叠集族和树结合成一个识别问题,他最终想出了以下题目:给定一棵包含 $n$ 个顶点的无向树和一个集合族 $\mathcal{F} = \{F_1, \dots, F_f\}$,其中 $F_i$ 由树中某两个顶点 $a_i$ 和 $b_i$ 之间的简单路径上的所有顶点组成,检查该族 $\mathcal{F}$ 是否为层叠集族。注意,在这种情况下 $\Omega = V$,且每个 $F_i \subseteq V$。

正如你所见,Lucas 已经成功地将这个问题提议给了编程竞赛。现在轮到你来解决它了。

输入格式

第一行包含两个整数 $n$ 和 $f$ ($1 \le n, f \le 100\,000$),分别表示树的顶点数和集合族 $\mathcal{F}$ 中的元素个数。

接下来的 $n-1$ 行描述树的结构。第 $i$ 行包含两个整数 $u_i$ 和 $v_i$ ($1 \le u_i, v_i \le n, u_i \neq v_i$),表示树中第 $i$ 条边连接的两个顶点的索引。

接下来的 $f$ 行描述构成族 $\mathcal{F}$ 的集合。第 $i$ 行包含两个整数 $a_i$ 和 $b_i$ ($1 \le a_i, b_i \le n$),使得 $F_i$ 由树中顶点 $a_i$ 和 $b_i$ 之间的简单路径上的所有顶点(包括 $a_i$ 和 $b_i$)组成。

输出格式

输出单词 “Yes” 或 “No”,取决于给定的集族是否为层叠集族。

样例

输入 1

4 2
1 2
2 3
2 4
1 2
4 2

输出 1

No

输入 2

6 5
1 2
2 3
3 4
5 6
5 2
2 1
6 6
1 4
3 4
4 1

输出 2

Yes

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.