#L4141. 「PA 2024」Żarówki

    ID: 4400 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>数据结构树状数组前缀和组合数学开关问题模运算组合计数PA2024

「PA 2024」Żarówki

题目描述

题目译自 PA 2024 Runda 5 Żarówki,感谢 Macaronlin 提供翻译

nn 个灯泡,每个灯泡有两种状态:开和关,初始状态是给定的。有 mm 个开关,每个开关控制两个灯泡,按下开关可以使这两个灯泡变为与目前状态相反的状态,只有在两个灯泡有相同状态时才起作用,否则不起作用。

你可以随意安排开关的使用顺序和使用次数,问利用这些开关可以实现多少种配置方案。灯泡在一种配置中打开而在另一种配置中关闭,则两种配置被视为不同。

输入格式

第一行两个整数 nnmm (1n200,000,0m400,000)(1 \le n \le 200,000, 0 \le m \le 400,000),表示灯泡和开关的个数。

第二行 nn 个整数 cic_i (ci0,1)(c_i \in {0,1}),如果 ci=1c_i = 1,则初始时第 ii 个灯泡是打开的,如果 ci=0c_i = 0,则初始时第 ii 个灯泡是关闭的。

接下来 mm 行,每行两个整数 ai,bia_i, b_i (1ai,bin,aibi)(1 \le a_i, b_i \le n, a_i \neq b_i),描述一个开关。

保证开关会影响不同的无序灯泡对。形式化地,i,j1,2,,m,ij\forall i,j \in {1,2,\ldots,m}, i \neq j,都有 (ai,bi)(aj,bj)(a_i,b_i) \neq (a_j,b_j)(ai,bi)(bj,aj)(a_i,b_i) \neq (b_j,a_j)

输出格式

输出一行一个整数,表示利用这些开关可以实现多少种配置方案。输出对 109+710^9+7 取模。

样例:

5 4
1 0 1 1 0
1 3
5 3
4 2
1 5
4

所有可以实现的配置方案为:1011010110000100001000111001111001110011

数据规模与约定

对于 100100% 的数据:

1n2×1051 \le n \le 2 \times 10^5

0m4×1050 \le m \le 4 \times 10^5

ci0,1c_i \in {0,1}

1ai,bin1 \le a_i, b_i \le naibia_i \neq b_i