Logo Infinity Online Judge

InfOJ

时间限制:3 s 空间限制:512 MB

#6. 杨辉三角

Statistics

题目描述

现在有一个二维矩阵 $a$,初值是杨辉三角,不在三角形内的则为 $0$。如,下面是这个矩阵的前 $5$ 行:

 1 0 0 0 0
 1 1 0 0 0
 1 2 1 0 0
 1 3 3 1 0
 1 4 6 4 1

注意,如第 $4$ 行 1 3 3 1 0,后面并不是没有数了,而是有无穷多个 $0$。

这个矩阵支持两种操作:

  • 1 x y,表示把 $a_{x,y}$ 加上 $1$。

  • 2 x y,表示求第 $x$ 行到第 $y$ 行的和 $\bmod (10^9+7)$。$x\le y$。

输入格式

本题强制在线。

第一行一个整数 $m$ ,表示共有 $m$ 个操作。所有的 $x$ 和 $y$ 均为整数。

下面 $m$ 行,每行三个整数 $\text{opt},x',y'$,$\text{opt}$ 代表操作的序号($1\le \text{opt} \le 2$),$x'$ 和 $y'$ 表示加密后的操作数。

记上一次 $2$ 操作的答案为 $\text{ans}$,则每次操作的 $x'$ 和 $y'$ 都要异或上 $\text{ans}$ 才是真实的 $x$ 和 $y$。初始 $\text{ans}$ 为 $0$。

输出格式

对于所有的 $2,3$ 操作,每行输出一个答案。

样例

输入

3
1 1 2
2 1 3
1 9 9

输出

8

说明

【数据范围】

对于 $10\%$ 的数据,$1 \le m,x,y \le 10$。

对于 $40\%$ 的数据,$1 \le x,y \le 10^5$,$m\le 10^4$。

对于 $100\%$ 的数据,$1 \le x,y \le 10^9$,$1\le m\le 5 \times 10^5$。

【样例说明】

加密前的输入数据:

3
1 1 2
2 1 3
1 1 1

初始矩阵:

 1 0 0
 1 1 0
 1 2 1

第 $1$ 个操作后的矩阵:

 1 1 0
 1 1 0
 1 2 1

第 $2$ 个操作的答案:$(1+1+0)+(1+1+0)+(1+2+1)=8$。

第 $3$ 个操作后的矩阵:

 2 1 0
 1 1 0
 1 2 1