#CSP202609E. 奇

奇

题目来自第 43 次 CSP 认证 T5,评测使用自造高质量复刻数据。我们承认原始题面与大样例版权均归中国计算机学会(CCF)所有,因此题面与评测服务均免费对外开放。如果您认为我们侵犯了您的权益,可联系我们。

时间限制: 8.0 秒

空间限制: 512 MB

题目描述

1346 有一棵大小为 nn 的圣诞树,树上的每个节点有一盏灯,节点 ii 上的灯的颜色为 cic_i。任意时刻,每盏灯的状态为开着或关着两种之一。

初始时,所有灯的状态可以用一个长为 nn 的 0101 串 ss 表示。对于节点 ii 上的灯,如果 si=0s_i = 0,表示这盏灯初始时是关着的;否则表示这盏灯初始时是开着的。

树的所有边可以用 n−1n - 1 个三元组表示,第 ii 个三元组 (ui,vi,wi)(u_i, v_i, w_i) 表示节点 uiu_i 与节点 viv_i 之间有一条长度为 wiw_i 的边。

定义一条从 uu 到 vv 的路径是好看的,当且仅当以下三个条件同时满足:

  • 节点 uu 和节点 vv 上的灯都是亮着的;
  • uu 到 vv 的路径长度为 kk 的倍数;
  • 有且仅有一种颜色,满足 uu 到 vv 的路径上有奇数个这种颜色的灯。这里灯颜色的出现次数与对应灯是否开启无关。

1346 好奇,对于这样的一棵树,有多少个无序二元组 {u,v}\{u, v\},满足 uu 到 vv 的路径是好看的。其中 uu 和 vv 可以相同。

当然,1346 有些时候也会更改一盏灯的状态(把开着的变成关着的,把关着的变成开着的)。1346 也想知道,在每次修改过后,有多少个无序二元组 {u,v}\{u, v\},满足 uu 到 vv 的路径是好看的。

输入格式

从标准输入读入数据。

第一行输入四个整数 n,m,k,qn, m, k, q,依次表示树的大小,颜色种类数,“好看的”路径长度参数,更改次数。

接下来一行输入一个长为 nn 的 0101 串 ss,表示初始时灯的状态。

接下来一行输入 nn 个正整数 c1,c2,…,cnc_1, c_2, \dots, c_n,表示每盏灯的颜色。

接下来 n−1n - 1 行,每行输入三个正整数 u,v,wu, v, w,表示节点 uu 和 vv 之间有一条长度为 ww 的边。

接下来 qq 行,每行输入一个正整数 uu,表示更改节点 uu 上的灯的状态。

输出格式

输出到标准输出。

输出 q+1q + 1 行,每行一个非负整数。

其中第 11 行表示初始树上有多少对满足条件的无序二元组;

接下来的 qq 行中,第 ii 行表示第 ii 次修改之后,树上有多少对满足条件的无序二元组。

5 3 4 5
01101
1 2 2 2 1
3 1 580377
3 2 900057
3 5 49869
3 4 868795
1
1
3
4
5
3
4
3
2
5
3

样例 1 解释

初始时,只有点对 {2,2},{3,3}\{2, 2\}, \{3, 3\} 和 {5,5}\{5, 5\} 合法,共 33 个。

修改点 11 上的灯的状态为开后,点对 {1,1},{2,2},{3,3}\{1, 1\}, \{2, 2\}, \{3, 3\} 和 {5,5}\{5, 5\} 合法,共 44 个。

修改点 11 上的灯的状态为关后,点对 {2,2},{3,3}\{2, 2\}, \{3, 3\} 和 {5,5}\{5, 5\} 合法,共 33 个。

修改点 33 上的灯的状态为关后,点对 {2,2}\{2, 2\} 和 {5,5}\{5, 5\} 合法,共 22 个。

修改点 44 上的灯的状态为开后:

  • 点对 {2,2},{4,4}\{2, 2\}, \{4, 4\} 和 {5,5}\{5, 5\} 合法。
  • 点 22 到点 44 的路径上,颜色 11 的灯有 00 个,颜色 22 的灯有 33 个,有且仅有颜色 22 出现了奇数次;路径长度为 900057+868795=1768852900057 + 868795 = 1768852,是 k=4k = 4 的倍数;所以点对 {2,4}\{2, 4\} 合法;
  • 点 44 到点 55 的路径上,颜色 11 的灯有 11 个,颜色 22 的灯有 22 个,有且仅有颜色 11 出现了奇数次;路径长度为 868795+49869=918664868795 + 49869 = 918664,是 k=4k = 4 的倍数;所以点对 {4,5}\{4, 5\} 合法。

共 55 对点对。

修改点 55 上的灯状态为关后,点对 {2,2},{2,4}\{2, 2\}, \{2, 4\} 和 {4,4}\{4, 4\} 合法,共 33 个。

样例 2

见题目文件区的 2.in 和 2.ans。

样例 2 解释

该样例满足测试点 1∼31 \sim 3 的限制条件。

样例 3

见题目文件区的 3.in 和 3.ans。

样例 3 解释

该样例满足测试点 4∼64 \sim 6 的限制条件。

样例 4

见题目文件区的 4.in 和 4.ans。

样例 4 解释

该样例满足测试点 7∼107 \sim 10 的限制条件。

样例 5

见题目文件区的 5.in 和 5.ans。

样例 5 解释

该样例满足测试点 11∼1411 \sim 14 的限制条件。

样例 6

见题目文件区的 6.in 和 6.ans。

样例 6 解释

该样例满足测试点 15∼2015 \sim 20 的限制条件。

子任务

对于 100%100\% 的数据,满足 $n \le 10^5, m \le 40, k \le 4, q \le 10^5, 1 \le c_i \le m, 1 \le u_i, v_i \le n, 1 \le w_i \le 10^6$。

测试点编号 n≤n \le m≤m \le k≤k \le q≤q \le
1∼31 \sim 3 2×1032 \times 10^{3} 4040 44 2×1032 \times 10^{3}
4∼64 \sim 6 10510^{5} 11 10510^{5}
7∼107 \sim 10 4040 11
11∼1411 \sim 14 44 11
15∼2015 \sim 20 10510^{5}