题意:有一个数组,每次可以修改子数组,但是修改后每个元素的位置都必须变化,求最少修改多少次使得这个数组有序. 题解:假如这个数组本来就有序,我们直接输出0.否则,对于数组两端,假如它们有序,那么我们可以不用做任何操作,直接看中间部分,所以我们分别扫一遍两端,分别找到两端第一个不满足条件的位置,然后我们遍历中间这个部分,如果没有任何一个位置的下标等于自己,那么操作数就是\(1\),如果有,我们就要先把它们打乱,然后再排序,所以操作数是\(2\). 代码: int t; int n; int a[N…