请问这道题怎么做
  • 板块学术版
  • 楼主__hqt__
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/22 20:13
  • 上次更新2024/10/22 21:21:14
查看原帖
请问这道题怎么做
712533
__hqt__楼主2024/10/22 20:13

今年6月一个比赛的t2,当时用堆卡过去了,但堆不在考纲内,问有没有什么其他方法能过


题目描述

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每趟找出第 ii 小的元素(也就是 A[in]A[i ∼ n] 中最小的元素),然后将这个元素与数组第 ii 个位置上的元素 A[i]A[i] 交换;在 n − 1 趟之后序列 AA 变为升序。

例如 A=[3,4,1,5,2]A = [3,4,1,5,2]

  • 第 1 趟交换 A[1]A[1], A[3]A[3],序列变为 [1,4,3,5,2][1,4,3,5,2]
  • 第 2 趟交换 A[2]A[2], A[5]A[5],序列变为 [1,2,3,5,4][1,2,3,5,4]
  • 第 3 趟交换 A[3]A[3], A[3]A[3],序列不变
  • 第 4 趟交换 A[4]A[4], A[5]A[5],序列变为 [1,2,3,4,5][1,2,3,4,5]

输入格式

第一行 2 个整数 nn, mm
第二行 nn 个整数 A[1n]A[1 ∼ n],保证 AA 是排列
第三行 mm 个整数 q[1m]q[1 ∼ m],保证 q[i]<q[i+1]q[i] < q[i + 1]

输出格式

输出 mm 行,第 ii 行包含 nn 个整数代表第 q[i]q[i] 趟之后的序列 AA

样例 #1

样例输入 #1

5 4
3 4 1 5 2
1 2 3 4

样例输出 #1

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

样例 #2

样例输入 #2

6 3
6 4 2 3 1 5
1 3 5

样例输出 #2

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

提示

对于所有数据,满足 1n1051 \le n \le 10^5, 1m101 \le m \le 10,1A[i]n1 \le A[i] \le n, 1q[i]<q[i+1]<n1 \le q[i] < q[i + 1] <n,保证 AA 是排列。
对于测试点 1~8:n10n \le 10
对于测试点 9~13:n2000n \le 2000
对于测试点 14~20:n105n \le 10^5

2024/10/22 20:13
加载中...