CF2123G Modular Sorting
题目描述
给定一个整数 $m$ 和一个由 $< m$ 的非负整数构成的序列 $a$。
你需要处理以以下格式给出的操作:
- $1$ $i$ $x$:将 $a_i$ 赋值为 $x$。
- $2$ $k$:询问如果你可以选择 $a$ 若干个元素 $a_i$(也可不选),将其变成 $(a_i+x\times k) \pmod m$,其中 $x$ 为任意正整数(不同元素选取的 $x$ 可以不同),是否可能让 $a$ 变得单调不降。
注意,每次操作 $2$ 都是独立的,即序列不会发生变化;但操作 $1$ 的赋值是永久性的。
输入格式
第一行一个整数 $t$,表示数据组数。
对于每组数据:
第一行三个整数 $n$,$m$,$q$,分别表示序列 $a$ 的长度,操作 $2$ 的模数,和操作的次数。
第二行 $n$ 个整数,第 $i$ 个表示 $a_i$。
接下来 $q$ 行,每行一个操作。
输出格式
对于每个操作 $2$,如果可能使序列 $a$ 单调不降,输出 `YES`,否则输出 `NO`。大小写不敏感。
说明/提示
**样例解释**
对于第一组数据:
第一次操作 $2$ 时,序列 $a$ 中的元素为 $[4,5,2,2,4,1,0]$,且 $k=4$。如果我们选择修改第 $1,2,5,6,7$ 个元素,选取的 $x$ 分别为 $2,2,1,2,1$,那么序列 $a$ 中的元素就会变为 $[0,1,2,2,2,3,4]$,它是单调不降序列。
第二次操作 $2$ 时,序列 $a$ 中的元素为 $[4,5,2,5,4,1,0]$,且 $k=4$,可以证明不存在使得序列 $a$ 单调不降的方案。
**数据范围**
$1 \le t\le 10^4$,$2 \le m \le 5 \cdot 10^5$,$2 \le n \le 10^5$,$1 \le q \le 10^5$,$ 0 \le a_i < m$。
对于操作 $1$,$1 \le i \le n$ , $ 0 \le x < m $;
对于操作 $2$,$1 \le k < m$。
保证所有数据的 $n$ 和 $q$ 总和均不超过 $10^5$。
翻译由 @[Shellchen](/user/935896) 提供