题目名称 | 2847. 算术天才⑨与等差数列 |
---|---|
输入输出 | Ap.in/out |
难度等级 | ★★★☆ |
时间限制 | 2000 ms (2 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | LGLJ 于2019-09-21加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:3, 提交:3, 通过率:100% | ||||
op_组撒头屯 | 100 | 1.098 s | 17.17 MiB | C++ |
shy | 100 | 1.125 s | 12.98 MiB | C |
LGLJ | 100 | 2.296 s | 23.37 MiB | C++ |
关于 算术天才⑨与等差数列 的近10条评论(全部评论) |
---|
算术天才⑨非常喜欢和等差数列玩耍。
有一天,他给了你一个长度为$n$的序列,其中第$i$个数为$a[i]$。
他想考考你,每次他会给出询问$l,r,k$,问区间$[l,r]$内的数从小到大排序后能否形成公差为$k$的等差数列。
当然,他还会不断修改其中的某一项。
为了不被他鄙视,你必须要快速并正确地回答完所有问题。
注意:只有一个数的数列也是等差数列。
第一行包含两个正整数$n,m(1<=n,m<=300000)$,分别表示序列的长度和操作的次数。
第二行包含n个整数,依次表示序列中的每个数$a[i](0<=a[i]<=10^9)$。
接下来m行,每行一开始为一个数$op$,
若$op=1$,则接下来两个整数$x,y(1<=x<=n,0<=y<=10^9)$,表示把$a[x]$修改为$y$。
若$op=2$,则接下来三个整数$l,r,k(1<=l<=r<=n,0<=k<=10^9)$,表示一个询问。
在本题中,$x,y,l,r,k$都是经过加密的,都需要$异或$你之前输出的$Yes$的个数来进行解密。
输出若干行,对于每个询问,如果可以形成等差数列,那么输出Yes,否则输出No。
5 3 1 3 2 5 6 2 1 5 1 1 5 4 2 1 5 1
No Yes
在此键入。
【BZOJ 4373】