题目信息

题目类型
入门级
题目年份
2021
题目题型
编程题
关 键 词
插入排序(sort)

题目题干

插入排序(sort)Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
题目描述Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老师刚刚在上课的时候讲了插入排序算法。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
假设比较两个元素的时间为 $\mathcal O(1)$,则插入排序可以以 $\mathcal O(n^2)$ 的时间复杂度完成长度为 $n$ 的数组的排序。不妨假设这 $n$ 个数字分别存储在 $a_1, a_2, \ldots, a_n$ 之中,则如下伪代码给出了插入排序算法的一种最简单的实现方式:Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
这下面是 C/C++ 的示范代码:Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```cppEc2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
for (int i = 1; i <= n; i++)Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
    for (int j = i; j >= 2; j--)Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
        if (a[j] < a[j-1]) {Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
            int t = a[j-1];Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
            a[j-1] = a[j];Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
            a[j] = t;Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
        }Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
这下面是 Pascal 的示范代码:Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```pascalEc2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
for i:=1 to n doEc2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
    for j:=i downto 2 doEc2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
        if a[j]<a[j-1] thenEc2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
            beginEc2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
                t:=a[i];Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
                a[i]:=a[j];Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
                a[j]:=t;Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
            end;Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
为了帮助小 Z 更好的理解插入排序,小 Z 的老师 H 老师留下了这么一道家庭作业:Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
H 老师给了一个长度为 $n$ 的数组 $a$,数组下标从 $1$ 开始,并且数组中的所有元素均为非负整数。小 Z 需要支持在数组 $a$ 上的 $Q$ 次操作,操作共两种,参数分别如下:Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
$1~x~v$:这是第一种操作,会将 $a$ 的第 $x$ 个元素,也就是 $a_x$ 的值,修改为 $v$。保证 $1 \le x \le n$,$1 \le v \le 10^9$。**注意这种操作会改变数组的元素,修改得到的数组会被保留,也会影响后续的操作**。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
$2~x$:这是第二种操作,假设 H 老师按照**上面的伪代码**对 $a$ 数组进行排序,你需要告诉 H 老师原来 $a$ 的第 $x$ 个元素,也就是 $a_x$,在排序后的新数组所处的位置。保证 $1 \le x \le n$。**注意这种操作不会改变数组的元素,排序后的数组不会被保留,也不会影响后续的操作**。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
H 老师不喜欢过多的修改,所以他保证类型 $1$ 的操作次数不超过 $5000$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
小 Z 没有学过计算机竞赛,因此小 Z 并不会做这道题。他找到了你来帮助他解决这个问题。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
## 输入格式Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
第一行,包含两个正整数 $n, Q$,表示数组长度和操作次数。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
第二行,包含 $n$ 个空格分隔的非负整数,其中第 $i$ 个非负整数表示 $a_i$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
接下来 $Q$ 行,每行 $2 \sim 3$ 个正整数,表示一次操作,操作格式见【**题目描述**】。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
## 输出格式Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于每一次类型为 $2$ 的询问,输出一行一个正整数表示答案。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
## 样例 #1Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
### 样例输入 #1Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
3 4Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
3 2 1Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2 3Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
1 3 2Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2 2Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2 3Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
### 样例输出 #1Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
1Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
1Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
2Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
```Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
## 提示Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**【样例解释 #1】**Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
在修改操作之前,假设 H 老师进行了一次插入排序,则原序列的三个元素在排序结束后所处的位置分别是 $3, 2, 1$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
在修改操作之后,假设 H 老师进行了一次插入排序,则原序列的三个元素在排序结束后所处的位置分别是 $3, 1, 2$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
注意虽然此时 $a_2 = a_3$,但是我们**不能将其视为相同的元素**。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**【样例 #2】**Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
见附件中的 `sort/sort2.in` 与 `sort/sort2.ans`。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
该测试点数据范围同测试点 $1 \sim 2$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**【样例 #3】**Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
见附件中的 `sort/sort3.in` 与 `sort/sort3.ans`。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
该测试点数据范围同测试点 $3 \sim 7$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**【样例 #4】**Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
见附件中的 `sort/sort4.in` 与 `sort/sort4.ans`。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
该测试点数据范围同测试点 $12 \sim 14$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
**【数据范围】**Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于所有测试数据,满足 $1 \le n \le 8000$,$1 \le Q \le 2 \times {10}^5$,$1 \le x \le n$,$1 \le v,a_i \le 10^9$。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于所有测试数据,保证在所有 $Q$ 次操作中,至多有 $5000$ 次操作属于类型一。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
各测试点的附加限制及分值如下表所示。Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| 测试点 | $n \le$ | $Q \le$ | 特殊性质 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
|:-:|:-:|:-:|:-:|Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $1 \sim 4$ | $10$ | $10$ | 无 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $5 \sim 9$ | $300$ | $300$ | 无 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $10 \sim 13$ | $1500$ | $1500$ | 无 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $14 \sim 16$ | $8000$ | $8000$| 保证所有输入的 $a_i,v$ 互不相同 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $17 \sim 19$ | $8000$ | $8000$ | 无 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $20 \sim 22$ | $8000$ | $2 \times 10^5$ | 保证所有输入的 $a_i,v$ 互不相同 |Ec2100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
| $23 \sim 25$ | $8000$ | $2 \times 10^5$ | 无 |

答案解析

相关题目

网络连接(network) 题目描述 TCP/IP 协议是网络通信领域的一项重要协议。今天你的任务,就是尝试利用这个协议,还原一个简化后的网络连接场景。 在本问题中,计算机分为两大类:服务机(`
插入排序(sort) 题目描述 插入排序是一种非常常见且简单的排序算法。小 Z 是一名大一的新生,今天 H 老师刚刚在上课的时候讲了插入排序算法。 假设比较两个元素的时间为 $\mathcal
分糖果(candy) 题目背景 红太阳幼儿园的小朋友们开始分糖果啦! ## 题目描述 红太阳幼儿园有 $n$ 个小朋友,你是其中之一。保证 $n \ge 2$。 有一天你在幼儿园的后花园里
上升点列【point】 题目描述 在一个二维平面内,给定 n nn 个整数点 ( x i , y i ) (x_i, y_i)(x  i ​  ,y  i ​  ),此外你还可以自由添加 k kk 个
逻辑表达式【expr】 题目描述 逻辑表达式是计算机科学中的重要概念和工具,包含逻辑值、逻辑运算、逻辑运算优先级等内容。 在一个逻辑表达式中,元素的值只有两种可能:0 00(表示假)和 1 11(表
解密【decode】 题目描述 给定一个正整数 k kk,有 k kk 次询问,每次给定三个正整数 n i , e i , d i n_i, e_i, d_in  i ​  ,e  i ​  ,d 
乘方【pow】 题目描述 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a aa 和 b bb,求 a b a^ba  b   的值是多少。 a b a^ba  b   即 b
第43题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第42题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个
第41题 (最小区间覆盖)给出 n 个区间,第 i 个区间的左右端点是[ai,bi]。现在要在这些区间中选出若干个,使得区间 [0,m][0,m] 被所选区间的并覆盖(即每一个 0≤i≤m 都在某个

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢