358. 【23NOIP提高组】双序列拓展 中等
时间限制: 1.0s · 内存限制: 512MB · 通过: 0/0
称某个序列 $B = \{b_1, b_2, · · · , b_n\}$ 是另一个序列$ A =\{a_1, a_2, · · · , a_m\}$ 的拓 展当且 仅当存在正整数序列 $L = \{l_1, l_2, · · · , l_m\}$,将 $a_i$ 替换为 $l_i$ 个 $a_i$ 后得到序列 $B$。例如, • $\{1, 3, 3, 3, 2, 2, 2\}$ 是 $\{1, 3, 3, 2\}$ 的拓展,取 $L = \{1, 1, 2, 3\}$ 或 $\{1, 2, 1, 3\}$; • 而 $\{1, 3, 3, 2\}$ 不是 $\{1, 3, 3, 3, 2\}$ 的拓展,$\{1, 2, 3\}$ 不是 $\{1, 3, 2\}$ 的拓展。 小 R 给了你两个序列 $X$ 和 $Y$ ,他希望你找到 $X$ 的一个长度为 $l_0 = 10100$ 的拓展 $F = \{f_i\}$ 以及 $Y$ 的一个长度为 $l_0$ 的拓展 $G = \{g_i\}$,使得任意 $1 ≤ i, j ≤ l_0$ 都有$(f_i −g_i)(f_j −g_j ) > 0$。由于序列太长,你只需要告诉小 R 是否存在这样的两个序列即可。 为了避免你扔硬币蒙混过关,小 R 还给了 $q$ 次额外询问,每次额外询问中小 R 会修改 $X$ 和 $Y$ 中若干元素的值。你需要对每次得到的新的 $X$ 和 $Y$ 都进行上述的判断。 询问之间是独立的,每次询问中涉及的修改均在原始序列上完成。
提交代码
C++
请先登录
登录后即可提交代码