SP3896 MAXISET - Maximal Independent Set

题目描述

给定一个无权无向图 \(G\),每个顶点与一个正权重相关联。某个顶点集合的权重定义为该集合中所有顶点的权重之和。 如果在一个顶点集合中,任意两个顶点之间都没有边相连,则称该顶点集合为一个独立集。 由顶点集合诱导的子图是指用该集合中的顶点作为顶点集,并保留原图中两端点都属于该集合的边构成的图。 如果用 \(s\) 表示一个顶点集合,那么 \(\text{Query}(s, G)\)表示由集合 \(s\) 诱导出的子图中,最大权重的独立集。 现在,你需要根据给定的 \(q\) 个查询和图的描述,输出每个查询对应的最大权重独立集的权重。

输入格式

第一行包含一个整数 \(T\),代表测试用例的数量。 每个测试用例包含以下几部分: - 第一行有两个整数 \(n\) 和 \(m\),分别表示顶点数和边数。 - 接下来的一行,包含 \(n\) 个整数,表示从 \(0\) 到 \(n-1\) 各个顶点的权重。 - 随后的 \(m\) 行中,每行包含两个整数 \(u\) 和 \(v\)(\(u \neq v\),且 \(0 \leq u, v < n\)),表示一条从 \(u\) 到 \(v\) 的无向边。 - 接下来的一行包含一个整数 \(q\),表示查询的数量。 - 随后的 \(q\) 行中,每行描述一个查询。每个查询从一个整数开始,表示集合 \(s\) 的大小,后接集合 \(s\) 中的顶点。

输出格式

对于每个测试用例,输出 \(q\) 行,每行给出对应查询的答案。在不同测试用例的输出之间插入一个空行。

说明/提示

- \(1 \leq T \leq 10\) - \(1 \leq n \leq 50\) - \(0 \leq m \leq \frac{n(n-1)}{2}\) - \(1 \leq q \leq 100\) - \(1 \leq \text{权重} \leq 10^6\) **本翻译由 AI 自动生成**