魔法大陆的连通谜题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

关于本题题面内无向图和最小生成树的定义:
给定一个无向图 (G=(V,E)),其中
[<br />V={1,2,\dots,n},<br />\quad<br />E={1,2,\dots,m}.<br />]
第 (i) 条边连接顶点 (u_i) 和 (v_i),权重为 (w_i)。图可能不连通。

每个连通块称为“魔法连通区域”。
对每个连通区域,其 最小生成树 (MST)定义为连接该区域所有顶点且总权重最小的边集。
 如果连通块内只有  个点, 条边那么他的最小生成树就是其本身。

题目背景:
在魔法大陆的边陲,有 n 座悬浮的魔法岛屿。
这些岛屿被古老的元素能量分割成了 多个独立的魔法连通区域.
每个区域之间由 m 座元素桥连接,每座元素桥需要消耗 w 单位魔力维持。
为了抵御即将到来的“虚空风暴”,大魔导师决定对每个连通区域进行魔力优化:只保留最省魔力的元素桥网络(即每个区域的最小魔力生成树)。

为了保证元素桥网络的稳定大魔导师制定了应对突发情况的备用桥计划,但风暴的扰动要求他必须 同时启用一组备用桥,且满足:
  1. 强制包含:启用的所有备用桥必须 全部存在于同一魔法连通区域最小魔力生成树 中。
  2. 魔力兼容:启用这些桥后,仍需能与其他桥组合成最小魔力生成树
所以大魔导师对你进行了 q  次询问,每次查询都是一组备用桥,给出 k  座备用元素桥的编号。你需要判断:
这些桥是否可能同时存在于同一个连通区域的同一棵最小魔力生成树中?
(即:是否存在一种最小生成树方案,使得这些桥都被选中,且这些桥在同一个魔法连通区域,且总魔力保持最小)

简要题面:
给你一个无向图,包含多个无向连通图。
给你  次查询,每次查询  个边的边号。
问这些边是否可能同时存在于,同一个无向连通图的同一棵最小生成树中。


输入描述:

第一行:两个整数 nm ,表示岛屿数量和元素桥数量
2 ≤ n, m ≤ 2\times10^{5}

接下来  行:每行三个整数 u_i, v_i, w_i ,表示第 i 座元素桥连接岛屿 u_iv_i ,维持需 w_i 单位魔力( u_i ≠ v_i1 ≤ w_i ≤ 10^{6} )。

下一行:一个整数 q ,表示询问次数( 1 ≤ q ≤ 2e5 )。

接下来 q 行:每行第一个整数为 k_i ,表示本次查询的边数;随后是 k_i 个 互不重复 的整数,表示元素桥的编号(编号从 1m )。
保证所有查询的 k_i 之和不超过 2\times10^{5}

输出描述:

对于每个查询,输出一行 YESNO :
YES:存在至少一种最小魔力生成树方案,使得查询的所有元素桥均被选中。
NO:无论如何选择,这些元素桥无法同时存在于同一连通区域的最小生成树中。

示例1

输入

复制
5 6
1 2 1
2 3 2
3 4 3
4 5 4
1 3 5
2 4 6
3
2 1 2
2 3 4
3 5 6 1

输出

复制
YES
YES
NO
示例2

输入

复制
3 3
1 2 1
2 3 1
1 3 1
1
2 1 2

输出

复制
YES
示例3

输入

复制
5 4
1 2 1
2 3 1
3 1 1
4 5 1
1
2 3 4

输出

复制
NO