CF444C.DZY Loves Colors

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

DZY loves colors, and he enjoys painting.

On a colorful day, DZY gets a colorful ribbon, which consists of n units (they are numbered from 1 to n from left to right). The color of the i-th unit of the ribbon is i at first. It is colorful enough, but we still consider that the colorfulness of each unit is 0 at first.

DZY loves painting, we know. He takes up a paintbrush with color x and uses it to draw a line on the ribbon. In such a case some contiguous units are painted. Imagine that the color of unit i currently is y. When it is painted by this paintbrush, the color of the unit becomes x, and the colorfulness of the unit increases by |x - y|.

DZY wants to perform m operations, each operation can be one of the following:

  1. Paint all the units with numbers between l and r (both inclusive) with color x.
  2. Ask the sum of colorfulness of the units between l and r (both inclusive).

Can you help DZY?

DZY 喜欢颜色,也喜欢绘画。

在一个色彩缤纷的日子里,DZY 得到了一条由 nn 个单位组成的彩色丝带(从左到右依次编号为 11 到 nn)。最初,第 ii 个单位的颜色为 ii。这已经足够绚丽了,但我们仍认为每个单位初始的“绚丽度”(colorfulness)均为 00。

我们都知道 DZY 热爱绘画。他拿起一支颜色为 xx 的画笔,在丝带上作画——此时若干连续的单位会被涂上该颜色。假设当前单位 ii 的颜色为 yy,那么当它被这支画笔涂色后,其颜色将变为 xx,且其绚丽度将增加 ∣x−y∣|x - y|。

DZY 想要执行 mm 次操作,每次操作为以下两种之一:

  1. 将编号在 ll 到 rr(含端点)之间的所有单位涂成颜色 xx;
  2. 查询编号在 ll 到 rr(含端点)之间的所有单位的绚丽度之和。

你能帮帮 DZY 吗?

输入格式

The first line contains two space-separated integers n, m (1 ≤ n, m ≤ 105).

Each of the next m lines begins with a integer type (1 ≤ type ≤ 2), which represents the type of this operation.

If type = 1, there will be 3 more integers l, r, x (1 ≤ l ≤ r ≤ n; 1 ≤ x ≤ 108) in this line, describing an operation 1.

If type = 2, there will be 2 more integers l, r (1 ≤ l ≤ r ≤ n) in this line, describing an operation 2.

第一行包含两个以空格分隔的整数 nn、mm(1 ≤ n, m ≤ 1051 \le n, m \le 10^5)。

接下来的 mm 行中,每行以一个整数 type\textit{type}(1 ≤ type ≤ 21 \le \textit{type} \le 2)开头,表示该操作的类型。

若 type = 1\textit{type} = 1,则该行还会包含另外三个整数 ll、rr、xx(1 ≤ l ≤ r ≤ n1 \le l \le r \le n;1 ≤ x ≤ 1081 \le x \le 10^8),描述操作 1。

若 type = 2\textit{type} = 2,则该行还会包含另外两个整数 ll、rr(1 ≤ l ≤ r ≤ n1 \le l \le r \le n),描述操作 2。

输出格式

For each operation 2, print a line containing the answer — sum of colorfulness.

对于每个操作 2,输出一行,包含答案——即色彩度之和。

输入输出样例

  • 输入#1

    3 3
    1 1 2 4
    1 2 3 5
    2 1 3

    输出#1

    8
  • 输入#2

    3 4
    1 1 3 4
    2 1 1
    2 2 2
    2 3 3

    输出#2

    3
    2
    1
  • 输入#3

    10 6
    1 1 5 3
    1 2 7 9
    1 10 10 11
    1 3 8 12
    1 1 10 3
    2 1 10

    输出#3

    129

说明/提示

In the first sample, the color of each unit is initially [1, 2, 3], and the colorfulness is [0, 0, 0].

After the first operation, colors become [4, 4, 3], colorfulness become [3, 2, 0].

After the second operation, colors become [4, 5, 5], colorfulness become [3, 3, 2].

So the answer to the only operation of type 2 is 8.

在第一个样例中,每个单位的初始颜色为 [1, 2, 3],对应的色彩度为 [0, 0, 0]。

第一次操作后,颜色变为 [4, 4, 3],色彩度变为 [3, 2, 0]。

第二次操作后,颜色变为 [4, 5, 5],色彩度变为 [3, 3, 2]。

因此,唯一一次类型 2 操作的答案为 8。

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

首页