时间限制:C/C++/Rust/Pascal 6秒,其他语言12秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
给一棵n个节点的树,每个节点上有一个操作+或者

和一个数字

,表示

或者

,有q次询问,每次给出四个数

,表示将

到

的简单路径上的节点依次拿出来组成一个操作序列,只考虑序列中的第1,1 + d,1 + 2d,1 + 3d...个操作,询问c依次进行这些操作后的最终结果,输出答案对998244353取模后的值
输入描述:
第一行为两个数n,q
接下来n-1行,每行两个数
,表示这棵树的边
接下来n行,每行一个‘+’或者‘*’ 和 一个数
,表示第i个点上的操作
接下来q行,每行四个数
,含义见题目描述
输出描述:
共q行,第i行输出第i个询问的答案对998244353取模后的值
示例1
输入
复制
5 3
1 2
2 3
2 4
1 5
+ 2
* 5
+ 3
* 2
+ 10
3 5 2 1
3 5 2 3
4 5 4 1
说明
%20%5Ctimes%205%20%2B%202)%20%2B%2010%20%3D%2037)
(2 + 3) + 10 = 15
%5Ctimes%205%20%2B%202)%20%2B%2010%20%3D%2052)
备注:
请注意常数因子带来的影响