#P7982. [JRKSJ R3] 琴琴的树
[JRKSJ R3] 琴琴的树
题目描述
琴琴有一棵二叉树,满足:
- 该树有无穷多个结点。
- 每个结点都有编号和权值。初始所有结点的权值为 。
- 树根的编号为 。
- 若一个结点的编号为 ,则该结点的左右儿子的编号分别是 。
琴琴要对树进行共 次操作,每次操作是二者之一:
- 将编号为 的结点为根的子树中的每个结点的权值都加 。
- 求树上编号为 的结点到编号为 的结点的路径上每个结点的权值和。答案对 取模。
不过琴琴不会直接给出 。她再给出一个长度为 的 序列 ,每次给出 或 时给出一个区间 或 ,这个数就是将这个区间视作二进制数的值。
输入格式
第一行两个整数 。
第二行一个长度为 的字符串表示 。保证字符串中只包含 0
和 1
。
下面 行,每行一个操作编号,然后是操作。操作的格式为:
输出格式
对于每个操作 ,每行一个整数表示答案。
5 5
01010
1 4 5 5
2 1 3 2 5
1 2 3 3
2 1 5 1 2
2 3 4 4 5
15
24
8
提示
样例解释
该树的前四层如图所示:
第一个操作:将以 为根的子树中的结点权值加上 。
第二个操作:求 的路径上的点的权值和。
第三个操作:将以 为根的子树中的结点权值加上 。
第四个操作:求 的路径上的点的权值和。
第五个操作:求 的路径上的点的权值和。
数据规模与约定
本题采用捆绑测试。
分值 | |||
---|---|---|---|
对于 的数据,,,,,保证 。