团的判定 Clique Check
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目背景
在社交网络中,如果一群用户之间两两都互为好友,就可以看作一个“小圈子”。在图论中,这样的顶点集合称为“团(Clique)”。给定一张无向图以及若干个顶点集合,需要判断这些集合是否对应图中的一个团。
题目描述
给出一张无向图,图中没有重边和自环。顶点从 1 到 N 编号,每条无向边具有一个长度权值 w(本题中只关心边是否存在,与权值大小无关)。
接下来给出 T 组询问。每组询问给出一个点集 {v₁, v₂, …, v_k}(保证这些点两两不同),需要判断该点集是否构成一个团。 即:判断在该无向图中,点集内任意两个不同的顶点之间是否都存在一条无向边相连。
对于每组询问,若给定点集构成一个团,则输出 Yes,否则输出 No。
约定:
- 当 k = 1 时,该点集视为构成团。
输入格式
输入的第一行包含两个整数 N、M,表示图中共有 N 个顶点和 M 条无向边。
接下来 M 行,每行包含三个整数 u v w,表示在顶点 u 和顶点 v 之间存在一条长度为 w 的无向边。
接下来一行包含一个整数 T,表示共有 T 组询问。
接下来 T 行,每行描述一组询问:
- 每行以一个整数 k 开头,表示点集大小;
- 随后给出 k 个不同的整数,表示点集中的顶点编号 v₁, v₂, …, v_k。
输出格式
输出共 T 行。 对于第 i 组询问,若对应点集构成团,则在第 i 行输出
Yes
否则输出
No。
输入输出样例 #1
输入 #1
4 5
1 2 2
1 3 2
1 4 3
2 3 4
3 4 3
2
2 1 2
3 2 3 4
输出 #1
Yes
No
样例说明
- 图共有 4 个点与 5 条边。
- 第一组询问点集为 {1, 2},1 与 2 之间有边,因此构成一个团,输出
Yes。 - 第二组询问点集为 {2, 3, 4},由于 2 与 4 之间没有边,因此不是团,输出
No。
数据范围
- 1 ≤ N ≤ 500
- 0 ≤ M ≤ 2000
- 顶点编号满足 1 ≤ u, v ≤ N,u ≠ v
- 1 ≤ T ≤ 1000
- 询问中给出的顶点编号两两不同,且均在 [1, N] 范围内
- 边权 w 为正整数,范围不作特殊限制(不影响结果)