专栏文章

题解:CF1455D Sequence and Swaps

CF1455D题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mips2ii0
此快照首次捕获于
2025/12/03 17:01
3 个月前
此快照最后确认于
2025/12/03 17:01
3 个月前
查看原文

CF1455D 题目传送门

题目大意

给定一个由 nn 个整数组成的序列 aa,以及一个整数 xx。你的任务是使序列 aa 有序。
你可以任意多次(包括零次)执行以下操作:选择一个整数 ii,满足 1in1 \leq i \leq nai>xa_i > x,然后交换 aia_ixx 的值。

解决思路

首先来看一个例子,如果 a=[0,2,3,5,4],x=1a = [0, 2, 3, 5, 4], x = 1,则以下操作序列是可能的:
先选择 i=2i = 2,然后 a=[0,1,3,5,4],x=2a = [0, 1, 3, 5, 4], x = 2
再选择 i=3i = 3,然后 a=[0,1,2,5,4],x=3a = [0, 1, 2, 5, 4], x = 3
最后选择 i=4i = 4,然后 a=[0,1,2,3,4],x=5a = [0, 1, 2, 3, 4], x = 5
若现在有 i<ji < j,而且 aia_{i} 需要交换但没有交换,则 aja_j 也无法交换。

代码展示

CPP

评论

0 条评论,欢迎与作者交流。

正在加载评论...