返回顶部

Codeforces Round #672 (Div. 2) A. Cubes Sorting (思维)

  • 题意:有一长度为\(n\)的一组数,每次可以交换两个数的位置,问能否在\(\frac{n*(n-1)}{2}-1\)次操作内使得数组非递减.

  • 题解:不难发现,只有当整个数组严格递减的时候,操作次数是\(\frac{n*(n-1)}{2}\),所以我们可以直接遍历判断有无\(a[i]<=a[i+1]\)即可.

  • 代码:

    int t;
    int n;
    int a[N];
    
    int main() {
        ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
        cin>>t;
        while(t--){
        	cin>>n;
        	//int cnt=n*(n-1)/2-1;
        	for(int i=0;i<n;++i){
        		cin>>a[i];
        	}
        	bool flag=false;
        	for(int i=0;i<n-1;++i){
        		if(a[i]<=a[i+1]){
        			flag=true;
        			break;
        		}
        	} 
        	if(flag) cout<<"YES"<<endl;
        	else cout<<"NO"<<endl;
        }
    
        return 0;
    }
    
posted @ 2020-09-25 16:15  _Kolibri  阅读(176)  评论(0)    收藏  举报