CF1746F Kazaee

题目描述

给出一个长度为 $n$ 的数组 $a$ 和以下两种操作: - $1\ i\ x$:将 $a_i$ 修改为 $x$ ( $ 1 \le a_{i} \le 10^9 $ )。 - $2\ l\ r\ k$ ( $ 1 \le i \le n $ , $ 1 \le x \le 10^9 $ ):询问在数组区间 $[l, r]$ 内是否每个出现过的正整数的出现次数都是 $k$ 的倍数。(建议参照样例理解)若是则输出 `YES`,若否则输出 `NO`。

输入格式

第一行两个整数 $n$、$q$( $ 1 \le n , q \le 3 \cdot 10^5 $ ),表示数组长度和操作数。 第二行 $n$ 个整数,为数组 $a$ 中的元素。(下标从1开始) 之后 $q$ 行,每行一个询问。

输出格式

对于每个操作2,给出相应答案(YES 或 NO)。

说明/提示

In the first query, requested subarray is $ [1234, 2, 3, 3, 2, 1] $ , and it's obvious that the number of occurrence of $ 1 $ isn't divisible by $ k = 2 $ . So the answer is "NO". In the third query, requested subarray is $ [1, 2, 3, 3, 2, 1] $ , and it can be seen that the number of occurrence of every integer in this sub array is divisible by $ k = 2 $ . So the answer is "YES". In the sixth query, requested subarray is $ [1, 2, 3, 3, 2, 1, 1, 2, 3] $ , and it can be seen that the number of occurrence of every integer in this sub array is divisible by $ k = 3 $ . So the answer is "YES".