QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 512 MB Total points: 100

#405. 就业

Statistics

你知道 Just Odd Inventions 公司吗?这家公司的业务是进行“奇妙的发明(just odd inventions)”。在此简称为 JOI 公司。

为了扩大业务,JOI 公司决定招聘新员工。

共有 $N$ 名候选人。候选人分别被编号为 $1$ 到 $N$,每位候选人都被设定了一个称为评价值的整数。

在本次招聘中,公司将录用所有评价值不低于某个特定值的候选人。新录用的员工将被分成若干个小组。新录用员工的分组需满足以下条件:

  • 当候选人 $a$ 和候选人 $b$ ($a < b$) 同时被录用时,他们属于同一个小组,当且仅当所有候选人 $c$ ($a \le c \le b$) 也都被录用。

作为 JOI 公司的人事负责人,你需要通过依次处理总共 $M$ 个查询,来估算本次招聘中会形成的小组数量。第 $j$ 个查询属于以下两种类型之一:

  • 求出录用所有评价值不低于 $B_j$ 的候选人时所形成的小组数量。这类查询称为解答查询。
  • 将候选人 $C_j$ 的评价值更新为 $D_j$。这类查询称为更新查询。

任务

给定关于 $M$ 个查询的信息,编写一个程序,求出每个解答查询对应的小组数量。

输入格式

从标准输入读取以下数据:

  • 第 $1$ 行包含两个整数 $N, M$,以空格分隔。这表示有 $N$ 名候选人,你需要处理 $M$ 个查询。
  • 接下来的 $N$ 行中的第 $i$ 行 ($1 \le i \le N$) 包含一个整数 $A_i$。这表示在处理查询之前,候选人 $i$ 的评价值为 $A_i$。
  • 接下来的 $M$ 行中的第 $j$ 行 ($1 \le j \le M$) 包含 $2$ 个或 $3$ 个整数,以空格分隔。设第 $1$ 个整数为 $T_j$,则该行的内容为以下之一:
    1. 当 $T_j = 1$ 时,该行包含整数 $T_j, B_j$,以空格分隔。这表示第 $j$ 个查询是一个解答查询,求录用所有评价值不低于 $B_j$ 的候选人时所形成的小组数量。
    2. 当 $T_j = 2$ 时,该行包含整数 $T_j, C_j, D_j$,以空格分隔。这表示第 $j$ 个查询是一个更新查询,将候选人 $C_j$ 的评价值更新为 $D_j$。

输出格式

将每个解答查询对应的小组数量依次输出到标准输出,每行输出一个。

数据范围

所有输入数据满足以下条件:

  • $1 \le N \le 200\,000$
  • $1 \le M \le 200\,000$
  • $1 \le A_i \le 1\,000\,000\,000$ ($1 \le i \le N$)
  • $1 \le T_j \le 2$ ($1 \le j \le M$)
  • $1 \le B_j \le 1\,000\,000\,000$ ($1 \le j \le M$)
  • $1 \le C_j \le N$ ($1 \le j \le M$)
  • $1 \le D_j \le 1\,000\,000\,000$ ($1 \le j \le M$)
  • 至少存在一个 $j$ ($1 \le j \le M$) 使得 $T_j = 1$。

子任务

子任务 1 [10 分]

满足以下条件: $N \le 2\,000$ $M \le 2\,000$

子任务 2 [30 分]

  • 满足 $T_j = 1$ ($1 \le j \le M$)。

子任务 3 [60 分]

  • 没有额外限制。

样例

样例输入 1

5 4
8
6
3
5
4
1 5
2 4 1
1 5
1 3

样例输出 1

2
1
2

说明

  1. 第 $1$ 个查询是解答查询。若录用评价值在 $5$ 以上的候选人 $1, 2, 4$,则会形成由候选人 $1$ 和 $2$ 组成的小组,以及由候选人 $4$ 组成的小组,共 $2$ 个小组,因此输出 $2$。
  2. 第 $2$ 个查询是更新查询。将候选人 $4$ 的评价值更新为 $1$。
  3. 第 $3$ 个查询是解答查询。若录用评价值在 $5$ 以上的候选人 $1$ 和 $2$,则会形成由候选人 $1$ 和 $2$ 组成的 $1$ 个小组,因此输出 $1$。
  4. 第 $4$ 个查询是解答查询。若录用评价值在 $3$ 以上的候选人 $1, 2, 3, 5$,则会形成由候选人 $1, 2, 3$ 组成的小组,以及由候选人 $5$ 组成的小组,共 $2$ 个小组,因此输出 $2$。

样例输入 2

7 5
13
19
1
15
13
1
19
1 20
1 1
1 6
1 11
1 17

样例输出 2

0
1
3
3
2

样例输入 3

10 5
8
10
15
2
2
8
5
12
11
4
1 5
2 8 4
1 12
2 5 11
1 16

样例输出 3

2
1
0

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.