CF1746F.Kazaee

省选/NOI-

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You have an array aa consisting of nn positive integers and you have to handle qq queries of the following types:

  • 11 ii xx: change aia_{i} to xx,
  • 22 ll rr kk: check if the number of occurrences of every positive integer in the subarray al,al+1,…ara_{l}, a_{l+1}, \ldots a_{r} is a multiple of kk (check the example for better understanding).

你有一个由 nn 个正整数组成的数组 aa,需要处理 qq 个如下类型的查询:

  • 11 ii xx:将 aia_{i} 修改为 xx;
  • 22 ll rr kk:检查子数组 al,al+1,…,ara_{l}, a_{l+1}, \ldots, a_{r} 中每个正整数的出现次数是否均为 kk 的倍数(参见示例以更好理解)。

输入格式

The first line of the input contains two integers nn and qq (1≤n,q≤3⋅1051 \le n , q \le 3 \cdot 10^5), the length of aa and the number of queries.

Next line contains nn integers a1,a2,…ana_{1}, a_{2}, \ldots a_{n} (1≤ai≤1091 \le a_{i} \le 10^9) — the elements of aa.

Each of the next qq lines describes a query. It has one of the following forms.

  • 11 ii xx, (1≤i≤n1 \le i \le n , 1≤x≤1091 \le x \le 10^9), or
  • 22 ll rr kk, (1≤l≤r≤n1 \le l \le r \le n , 1≤k≤n1 \le k \le n).

输入的第一行包含两个整数 nn 和 qq(1≤n,q≤3⋅1051 \le n , q \le 3 \cdot 10^5),分别表示数组 aa 的长度和查询次数。

下一行包含 nn 个整数 a1,a2,…ana_{1}, a_{2}, \ldots a_{n}(1≤ai≤1091 \le a_{i} \le 10^9)——即数组 aa 的元素。

接下来的 qq 行,每行描述一个查询,其格式为以下两种之一:

  • 11 ii xx(其中 1≤i≤n1 \le i \le n,1≤x≤1091 \le x \le 10^9),或
  • 22 ll rr kk(其中 1≤l≤r≤n1 \le l \le r \le n,1≤k≤n1 \le k \le n)。

输出格式

For each query of the second type, if answer of the query is yes, print "YES", otherwise print "NO".

对于每个第二类查询,如果查询的答案为“是”,则输出 “YES”,否则输出 “NO”。

输入输出样例

  • 输入#1

    10 8
    1234 2 3 3 2 1 1 2 3 4
    2 1 6 2
    1 1 1
    2 1 6 2
    2 1 9 2
    1 10 5
    2 1 9 3
    1 3 5
    2 3 10 2

    输出#1

    NO
    YES
    NO
    YES
    YES

说明/提示

In the first query, requested subarray is [1234,2,3,3,2,1][1234, 2, 3, 3, 2, 1], and it's obvious that the number of occurrence of 11 isn't divisible by k=2k = 2. So the answer is "NO".

In the third query, requested subarray is [1,2,3,3,2,1][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=2k = 2. So the answer is "YES".

In the sixth query, requested subarray is [1,2,3,3,2,1,1,2,3][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=3k = 3. So the answer is "YES".

在第一次查询中,所请求的子数组为 [1234,2,3,3,2,1][1234, 2, 3, 3, 2, 1],显然数字 11 的出现次数不能被 k=2k = 2 整除。因此答案为 “NO”。

在第三次查询中,所请求的子数组为 [1,2,3,3,2,1][1, 2, 3, 3, 2, 1],可以看出该子数组中每个整数的出现次数均可被 k=2k = 2 整除。因此答案为 “YES”。

在第六次查询中,所请求的子数组为 [1,2,3,3,2,1,1,2,3][1, 2, 3, 3, 2, 1, 1, 2, 3],可以看出该子数组中每个整数的出现次数均可被 k=3k = 3 整除。因此答案为 “YES”。

输入解题思路,AI测评打分。不知道怎么写?

首页