P17087 [COTS 2026] 加法 / Zbrajanje(暂无数据)

题目背景

2s, 512M

题目描述

考虑 $k$ 维坐标中的整点。我们用数列 $a=[a_1,\ldots,a_k]$ 限制坐标范围:定义 $S_a=\{(x_1,x_2,\ldots,x_k) \mid \forall 1\le i\le k,0\le x_i\lt a_i\}$。 对于 $S_a$ 中的两个整点 $x=(x_1,\ldots,x_k),y=(y_1,\ldots,y_k)$,定义其**和** $x+y=((x_1+y_1)\bmod a_1,\ldots, (x_k+y_k)\bmod a_k)$。 对于数列 $a,b$,定义 $S_a,S_b$ **同构**(Isomorphic),当且仅当存在**保加法**的**双射** $H:S_a\to S_b$。 > > 定义映射 $H$ **保加法**,当且仅当:$\forall x,y\in S_a$,$H(x+y)=H(x)+H(y)$。 > > 注记:等号左边的加法是定义在 $S_a$ 中的,而右边的加法是定义在 $S_b$ 中的。 **注意,这里 $\boldsymbol{a,b}$ 的长度未必相同**。 ::::info[更通俗的叙述] 对于数列 $a,b$,定义 $S_a,S_b$ **同构**(Isomorphic),当且仅当存在映射 $H:S_a\to S_b$,满足: - $\forall x,y\in H(x),x\neq y\implies H(x)\neq H(y)$。换言之,$S_a$ 中不同的元素映射到 $S_b$ 中不同的元素。 - $\{H(x) \mid x\in S_a\}=S_b$。换言之,$S_b$ 中的每个元素都恰好被映射到一次。 - $H$ 保加法。换言之,设 $x,y\in H(x)$,令 $z=x+y$。不论 $x,y$ 如何取,都有 $H(z)=H(x)+H(y)$。 :::: 给定长度为 $N$ 的数列 $n=[n_1,\ldots,n_N]$。有 $Q$ 次操作,形如: - $\texttt{1}$ $i$ $x$:令 $n_i\gets x$。 - $\texttt{2}$ $l_1$ $r_1$ $l_2$ $r_2$。 令 $a=[n_{l_1},\ldots,n_{r_1}]$,$b=[n_{l_2},\ldots,n_{r_2}]$。判断 $S_a$ 和 $S_b$ 是否同构。 **注意,这里 $\boldsymbol{a,b}$ 的长度未必相同**。

输入格式

第一行包含一个整数 $N$($1 \le N \le 3 \cdot 10^5$),表示数列的长度。 第二行包含 $N$ 个整数 $n_1, \dots n_N$($1\le n_i\le 10^6$)。 第三行包含一个整数 $Q$($1 \le Q \le 3 \cdot 10^5$),表示询问的数量。 在接下来的 $Q$ 行中,每行包含一个以下格式之一的询问: - $\texttt{1}$ $i$ $x$($1\le i\le N$,$1\le x\le 10^6$)。 - $\texttt{2}$ $l_1$ $r_1$ $l_2$ $r_2$($1 \le l_1 \le r_1 \le N$,$1 \le l_2 \le r_2 \le N$)。 **注意,这两个区间的长度未必相同**。

输出格式

对于每个类型 $\texttt{2}$ 的询问,若同构则输出一行 $\texttt{DA}$,否则输出一行 $\texttt{NE}$。

说明/提示

### 样例解释 以下为样例 $2$ 解释。 $a=[2, 3]$ 和 $b=[6]$ 时,$S_a$ 和 $S_b$ 同构。一个合法的双射 $H$ 如下所示: - $H((0, 0)) = (0)$; - $H((1, 1)) = (1)$; - $H((0, 2)) = (2)$; - $H((1, 0)) = (3)$; - $H((0, 1)) = (4)$; - $H((1, 2)) = (5)$; 可以证明 $a=[2, 2],b=[4]$ 时,$S_a$ 和 $S_b$ 不同构。 不难看出,**$\boldsymbol{a,b}$ 的长度未必相同**。 ### 子任务 | 子任务 | 分数 | 限制条件 | | :---: | :---: | :--- | | $1$ | $17$ | 在任意时刻,所有的 $n_i$ 都是素数。 | | $2$ | $14$ | 在任意时刻,所有的 $n_i$ 都是 $2$ 的幂。 | | $3$ | $33$ | $Q = 1$ | | $4$ | $36$ | 无额外限制条件。 |