题目描述
池塘上有 n 片荷叶,从 1 编号到 n。现在有一棵大小为 n 的有根树 T 描述了这些荷叶的关系。T 的根是 1。
每片荷叶上都有一个符号 U 或者 D。这个符号表示如果青蛙在第 i 片荷叶上,则:
- 若符号是 U,则可以跳到 T 上 i 的祖先(不包含自身)。
- 若符号是 D,则可以跳到 T 上 i 的子孙(不包含自身)。
定义这棵树对青蛙是友好的,当且仅当青蛙可以从任意一个荷叶 s 开始,跳过所有荷叶至少一次,回到 s。
由于一些原因,一些荷叶上的符号模糊了,记为 ? 符号。定义 f(T) 为把每个 ? 符号替换成 U 或 D 后,这棵树对青蛙是友好的方案数。
由于一些原因,这些荷叶上的三种符号可能会发生局部变化,有 q 次修改,每次修改让第 x 片荷叶的符号变成 y,你需要在每次修改后和初始时求出 f(T) 对 998244353 取模的结果。
输入格式
第一行包含两个整数 n,q。
第二行包含一个长度为 n 的字符串,第 i 个字符表示第 i 片荷叶上的符号 ai。
接下来 n−1 行,第 i 行两个整数 ui,vi,表示树 T 上存在一条 ui 到 vi 的边。
接下来 q 行,第 i 行一个整数和一个字符 xi,yi,表示让第 xi 片荷叶的符号变成 yi。
输出格式
包含 q+1 行,第 i 行包含一个整数,表示前 i−1 次修改按顺序执行完后,f(T) 对 998244353 取模的结果。
5 3
?????
1 2
1 3
2 4
3 5
1 U
1 D
4 U
4
0
4
4
提示
| 子任务编号 |
n,q≤ |
特殊性质 |
分数 |
| 1 |
10 |
无 |
13 |
| 2 |
103 |
A |
23 |
| 3 |
B |
| 4 |
3×105 |
A |
15 |
| 5 |
B |
| 6 |
无 |
11 |
特殊性质 A:保证 ai,yi∈{U,D}。
特殊性质 B:保证 q=0,且 ai=?。
对于所有数据,保证 1≤n≤3×105,0≤q≤3×105。
保证 1≤ui,vi≤n,给定的边构成一棵以 1 为根的树。
保证 ai,yi∈{U,D,?}。保证 1≤xi≤n。