B. Permutation Sort(思维

添加链接描述
首先明确可以尽量选大的范围 那就考虑首尾是不是1或n 如果都不是且正好相反就是需要三次的交换,如果首尾有一个符合需要一次,否则两次就可

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+9;
typedef long long ll;
int arr[N];
ll sum=0;
int T,n;
int main(){
    int T;
    cin>>T;
    while(T--){
        int n;
        scanf("%d",&n);
       for(int i=1;i<=n;i++){
           scanf("%d",&arr[i]);
       }
       int now=1,mx=0,ans=0;
       if(is_sorted(arr+1,arr+1+n)){
           ans=0;
       }
       else if(arr[1]==1||arr[n]==n)ans=1;
       else if(arr[1]==n&&arr[n]==1)ans=3;
       else ans=2;
       cout<<ans<<endl;
    }


    return 0;
}
上一篇:Referenced file contains errors (http://www.springframework.org/schema/beans/spring-beans-3.1.xsd)


下一篇:ConfigurableListableBeanFactory