给你一个无向图,有 n 个节点,编号从 0 到 n - 1。节点 i 的 值 为 nums[i],可以是 0 或 1。图的边由一个二维数组 edges 给出,其中 edges[i] = [ui, vi] 表示节点 ui 和节点 vi 之间的一条边。
对于图中节点的 非空子集 s,我们考虑由 s 生成的 诱导子图 如下:
s 中的节点。s 中的边。返回一个整数,表示图中满足以下条件的节点的 非空 子集 s 的数量:
s 的 诱导子图 是 连通的。s 中节点 值 的 总和 是 偶数。
示例 1:
输入: nums = [1,0,1], edges = [[0,1],[1,2]]
输出: 2
解释:
s | 是否连通? | 节点值总和 | 和是否为偶数? |
|---|---|---|---|
[0] | 是 | 1 | 否 |
[1] | 是 | 0 | 是 |
[2] | 是 | 1 | 否 |
[0,1] | 是 | 1 | 否 |
[0,2] | 否,节点 0 和节点 2 不连通。 | 2 | 否 |
[1,2] | 是 | 1 | 否 |
[0,1,2] | 是 | 2 | 是 |
示例 2:
输入: nums = [1], edges = []
输出: 0
解释:
s | 是否连通? | 节点值总和 | 和是否为偶数? |
|---|---|---|---|
[0] | 是 | 1 | 否 |
提示:
1 <= n == nums.length <= 13nums[i] 是 0 或 1。0 <= edges.length <= n * (n - 1) / 2edges[i] = [ui, vi]0 <= ui < vi < n