洛谷——CF1750A Indirect Sort

25 篇文章 1 订阅


Indirect Sort

题目描述

You are given a permutation a 1 , a 2 , … , a n a_1, a_2, \ldots, a_n a1,a2,,an of size n n n , where each integer from 1 1 1 to n n n appears exactly once.

You can do the following operation any number of times (possibly, zero):

  • Choose any three indices i , j , k i, j, k i,j,k ( 1 ≤ i < j < k ≤ n 1 \le i < j < k \le n 1i<j<kn ).
  • If a i > a k a_i > a_k ai>ak , replace a i a_i ai with a i + a j a_i + a_j ai+aj . Otherwise, swap a j a_j aj and a k a_k ak .

Determine whether you can make the array a a a sorted in non-descending order.

输入格式

Each test consists of multiple test cases. The first line contains a single integer t t t ( 1 ≤ t ≤ 5000 1 \le t \le 5000 1t5000 ) — the number of test cases. The description of test cases follows.

The first line of each test case contains a single integer n n n ( 3 ≤ n ≤ 10 3 \le n \le 10 3n10 ) — the length of the array a a a .

The second line contains n n n integers a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1,a2,,an( 1 ≤ a i ≤ n 1 \le a_i \le n 1ain , a i ≠ a j a_i \neq a_j ai=aj if i ≠ j i \neq j i=j ) — the elements of the array a a a .

输出格式

For each test case, output “Yes” (without quotes) if the array can be sorted in non-descending order, and “No” (without quotes) otherwise.

You can output “Yes” and “No” in any case (for example, strings “YES”, “yEs” and “yes” will be recognized as a positive response).

样例 #1

样例输入 #1

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

样例输出 #1

Yes
Yes
No
No
No
No
Yes

提示

In the first test case, [ 1 , 2 , 3 ] [1,2,3] [1,2,3] is already sorted in non-descending order.

In the second test case, we can choose i = 1 , j = 2 , k = 3 i = 1,j = 2,k = 3 i=1,j=2,k=3 . Since a 1 ≤ a 3 a_1 \le a_3 a1a3 , swap a 2 a_2 a2 and a 3 a_3 a3 , the array then becomes [ 1 , 2 , 3 ] [1,2,3] [1,2,3] , which is sorted in non-descending order.

In the seventh test case, we can do the following operations successively:

  • Choose i = 5 , j = 6 , k = 7 i = 5,j = 6,k = 7 i=5,j=6,k=7 . Since a 5 ≤ a 7 a_5 \le a_7 a5a7 , swap a 6 a_6 a6 and a 7 a_7 a7 , the array then becomes [ 1 , 2 , 6 , 7 , 4 , 5 , 3 ] [1,2,6,7,4,5,3] [1,2,6,7,4,5,3] .
  • Choose i = 5 , j = 6 , k = 7 i = 5,j = 6,k =7 i=5,j=6,k=7 . Since a 5 > a 7 a_5 > a_7 a5>a7 , replace a 5 a_5 a5 with a 5 + a 6 = 9 a_5+a_6=9 a5+a6=9 , the array then becomes [ 1 , 2 , 6 , 7 , 9 , 5 , 3 ] [1,2,6,7,9,5,3] [1,2,6,7,9,5,3] .
  • Choose i = 2 , j = 5 , k = 7 i = 2,j = 5,k = 7 i=2,j=5,k=7 . Since a 2 ≤ a 7 a_2 \le a_7 a2a7 , swap a 5 a_5 a5 and a 7 a_7 a7 , the array then becomes [ 1 , 2 , 6 , 7 , 3 , 5 , 9 ] [1,2,6,7,3,5,9] [1,2,6,7,3,5,9] .
  • Choose i = 2 , j = 4 , k = 6 i = 2,j = 4,k = 6 i=2,j=4,k=6 . Since $ a_2 \le a_6 $ , swap a 4 a_4 a4 and a 6 a_6 a6 , the array then becomes [ 1 , 2 , 6 , 5 , 3 , 7 , 9 ] [1,2,6,5,3,7,9] [1,2,6,5,3,7,9] .
  • Choose i = 1 , j = 3 , k = 5 i = 1,j = 3,k = 5 i=1,j=3,k=5 . Since a 1 ≤ a 5 a_1 \le a_5 a1a5 , swap a 3 a_3 a3 and a 5 a_5 a5 , the array then becomes [ 1 , 2 , 3 , 5 , 6 , 7 , 9 ] [1,2,3,5,6,7,9] [1,2,3,5,6,7,9] , which is sorted in non-descending order.

In the third, the fourth, the fifth and the sixth test cases, it can be shown that the array cannot be sorted in non-descending order.

代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    int t,n,a,b,i;
    cin>>t;
    while(t--) {
        cin>>n>>b;
        for(i=2;i<=n;i++)
        cin>>a;
        if(b==1) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值