#NC2510K. 神奇集合

神奇集合

题目描述

给定一棵有根树 T T ,包含 n n 个顶点和 n1 n-1 条有向边。

对于顶点 i i ,其权值为 ai a_i 。如果存在一条从顶点 y y 出发、到顶点 x x 结束的路径,且该路径仅通过有向边,则称顶点 x x 可以从顶点 y y 到达。保证所有顶点都可以从根节点到达。

给定 m m 对顶点 (ui,vi) (u_i, v_i) ,满足在原树中 ui u_i 可以从 vi v_i 到达。现在,将添加新的有向边 uivi u_i \to v_i 以形成一个新的图。

定义一个顶点集合的子集 S S (可以为空)为 神奇 的,当且仅当对于 S S 中的每个元素 x x ,在新图中所有可从 x x 到达的顶点都在 S S 中。神奇 集合 S S 的权值定义为 S S 中所有元素的权值之和。空集的权值为 00

对于所有 神奇 集合,共有多少种不同的权值出现?

输入格式

第一行包含一个整数 n n 1n104 1 \leq n \leq 10^4 ),表示树 T T 的顶点数量。

第二行包含 n n 个整数,第 i i 个数表示 ai a_i 0aii=1nai104 0 \leq a_i \leq \sum_{i=1}^{n} a_i \leq 10^4 )。

接下来的 n1 n-1 行描述树的所有 n1 n-1 条有向边。对于第 i i 行,给出两个整数 Ui,Vi U_i, V_i 1Ui,Vin 1 \leq U_i, V_i \leq n ),表示存在一条从 Ui U_i 指向 Vi V_i 的边。

接下来一行包含一个整数 m m 1m5×105 1 \leq m \leq 5 \times 10^5 ),表示新增边的数量。

接下来的 m m 行描述所有新增的有向边。对于第 i i 行,给出两个整数 ui,vi u_i, v_i 1ui,vin 1 \leq u_i, v_i \leq n ),表示新增一条从 ui u_i 指向 vi v_i 的边。

  • 新增的边 (ui,vi) (u_i, v_i) 保证两两不同。
  • 新增的边 保证 uivi u_i \neq v_i
  • 树的根节点 直接给出。

输出格式

一个整数,表示上述问题的答案。

3
1 2 3
1 3
1 2
1
2 1
3

解释 #1

样例包含三个 神奇 集合:{1,2,3}{3}\{1, 2, 3\}、\{3\}、\emptyset。由于它们的权值互不相同,答案为 33