#P7827. A Very Easy Graph Problem

A Very Easy Graph Problem

一个非常简单的图论问题

题目描述

给定一个有 nn 个点、mm 条边的无向连通图。

按照输入顺序编号,第 ii 条边的长度为 2i2^i

每个点 ii 有一个值 aia_i,其中 aia_i 只能是 0011

你需要计算

$\displaystyle \sum_{i=1}^{n}\sum_{j=1}^{n} d(i,j)\times [a_i=1\land a_j=0]$

其中:

  • d(i,j)d(i,j) 表示点 ii 到点 jj 的最短路长度;
  • [ ][\ ] 是 Iverson 括号,当括号中的条件成立时值为 11,否则为 00
  • \land 表示逻辑与。

换句话说,对于所有满足 ai=1a_i=1aj=0a_j=0 的有序点对 (i,j)(i,j),求它们之间的最短路长度之和。

由于答案可能非常大,请输出答案对 109+710^9+7 取模后的结果。


输入格式

第一行包含一个整数 TT,表示测试数据组数。

1T81\le T\le 8

对于每组测试数据:

第一行包含两个整数 n,mn,m,表示点数和边数。

1n105,1m2×1051\le n\le 10^5,\quad 1\le m\le 2\times 10^5

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,其中 ai0,1a_i\in{0,1}

接下来 mm 行,每行包含两个整数 u,vu,v,表示一条连接点 uu 和点 vv 的无向边。

其中,第 ii 行给出的边是第 ii 条边,它的长度为 2i2^i

1u,vn1\le u,v\le n

保证所有测试数据中 n,mn,m 的总规模不超过 2×1052\times 10^5


输出格式

对于每组测试数据,输出一行一个整数,表示答案对 109+710^9+7 取模后的结果。


样例

1
3 2
0 1 0
3 1
3 2
10

样例解释

两条边的长度分别为:

  • 313\leftrightarrow 1,长度为 21=22^1=2
  • 323\leftrightarrow 2,长度为 22=42^2=4

只有点 22 的值为 11

因此需要计算:

  • d(2,3)=4d(2,3)=4
  • d(2,1)=4+2=6d(2,1)=4+2=6

答案为 4+6=104+6=10


来源

2020 Multi-University Training Contest 6