Logo 邂逅编程之美

UOJ

时间限制:5 s 空间限制:512 MB
Statistics

大样例

【题目描述】

黑鸭有一个长度为 $n$ 的序列 $a_1,a_2,...,a_n$ ,他每次会进行以下三种操作之一:

1.给定三个正整数 $l,r,v$ ,把 $a_l \sim a_r$ 都加上 $v$。

2.给定三个正整数 $l, r, v$,把 $al ∼ ar$ 都变为 $v$。

3.给定两个整数 $l, r$,求子区间 $[a_l, a_l + 1,...,a_r]$ 的奇异度。

一个序列 $b_1, b_2, . . . , b_n$ 的奇异度定义为,每次任选一个位置 $b_i$ 并将其变为 $\lfloor \sqrt{b_i \rfloor}$,使得 $b_1 ∼ b_n$ 全相同所需的最小操作次数。

【输入格式】

从文件 $dseq.in$ 中读入数据。

第一行两个正整数 $n$, $q$。

第二行 $n$ 个正整数 $a_1, a_2, . . . , a_n$,表示序列 $a$。

接下来 $q$ 行,每行第一个整数 $op$ 表示操作种类。当 $op = 1$ 时,后跟三个整数 $l, r, v$,表示进行 第一种操作;当 $op = 2$ 时,后跟三个整数 $l, r, v$ 表示进行第二种操作;当 $op = 3$ 时,后跟三个整数 $l, r$ 表示查询 $a_l ∼ a_r$ 的奇异度。

【输出格式】

输出到文件 $dseq.out$ 中。

对于每个 $op = 3$ 的操作,输出一行整数表示此次查询的结果。

【样例 1 输入】

3 4
11 45 14
2 1 2 6
3 1 3
1 2 3 30
3 1 3

【样例 1 输出】

6
2

【样例 1 解释】

第一个询问时,序列为 ${6, 6, 14}$,最优策略为对每个元素进行两次操作,使得序列变为 ${1, 1, 1}$, 答案为 $6$。 第二个询问时,序列为 ${6, 36, 44}$,最优策略为对 $a_2, a_3$ 各自进行一次操作,使得序列变为 ${6, 6, 6}$,答案为 $2$。

【样例 2】

见下发文件目录下的 dseq/ex_dseq2.in 与 dseq/ex_dseq2.ans。

【样例 3】

见下发文件目录下的 dseq/ex_dseq3.in 与 dseq/ex_dseq3.ans。

【数据范围与提示】

对于 100% 的数据,有 $1 ≤ n, q ≤ 250000, 1 ≤ a_i ≤ 10^9 , 1 ≤ l ≤ r ≤ n$。对于 $1$ 操作,有$ 1 ≤ v ≤ 4000$,对于 $2$ 操作,有 $1 ≤ v ≤ 10^9$

子任务编号 分值              $n, q ≤$             特殊性质
$1$ $5$ $10$
$2$ $10$ $2000$
$3$ $10$ $250000$ 没有 $1, 2$ 操作
$4$ $10$ $250000$ 没有 $1$ 操作
$5$ $20$ $250000$ 没有 $2$ 操作
$6$ $15$ $50000$
$7$ $30$ $250000$