#cacc20252C. Charlie 的三点权树
Charlie 的三点权树
时间限制: 2.0 秒
空间限制: 512 MB
题目描述
Charlie 有一棵 节点的有根树,根节点编号为 ,每个节点 有三个权值 ,现在定义对于权值的操作 如下:
- ,令 ;
- ,令 ;
- ,令 ;
- ,给定 ,令 ;
- ,给定 ,令 ;
- ,给定 ,令 ;
- ,表示询问操作。
定义在以上操作在树上对应节点的操作 如下:
- ,给定 ,对应编号为 的节点;
- ,给定 ,对应编号为 的节点为根的子树;
- ,给定 ,对应树上 两点之间的简单路径上的所有节点。
由 两种操作按顺序组成一个操作,先输入 操作,再输入 操作。例如 1 2 3 表示对以节点 为根的子树,子树中所有节点的 ,6 2 3 1 4 则表示树上 两点之间的简单路径上的所有节点的 。
特别地,对于询问操作,若询问的节点只有一个,只需依次输出该节点 的值即可,否则,依次输出对应节点 的和、 的和、 的和。由于答案可能很大,对于所有询问操作,你只需要输出答案在模 下的结果即可。
输入格式
从标准输入读入数据。
第一行输入两个整数 ,分别代表树上节点的个数和操作个数。
第二行输入 个整数 。
第三行输入 个整数 。
第四行输入 个整数 。
其中 分别表示节点 的初始点权。
第五行输入 个整数 ,其中 表示节点 的父节点编号,题目保证 ,且只有 ,表示节点 为根节点。
接下来 行,每行输入若干个整数,表示一次操作,操作格式如题面所示。
输出格式
输出到标准输出。
对于每次询问操作,输出一行由一个空格分隔的三个整数,表示你的答案。
5 7
1 1 2 2 1
2 1 3 1 2
1 1 2 1 2
0 1 1 2 2
1 2 3
2 1 2
3 3 3 4
4 2 2 1
5 7 3 3 5
6 1 1 4
7 2 1
24 39 24
子任务
对于 的测试数据,保证 。
对于另外 的测试数据,保证 。
对于 的测试数据,保证 。
提示
本题输入量较大,请采用效率较高的读入方式。