#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1e9 + 7;
const int N= 1e6 + 10;

int n, k;
int a[N], b[N];
void solve() {
cin >> n >>k;

for (int i = 1; i <= n ;i++)
{
cin >> a[i];
b[i] = a[i];
}

if (n >= 2 * k) puts("YES");
else {
sort(a + 1, a + 1 + n);

for (int i = n - k + 1; i <= k; i ++)
if (b[i] != a[i]) {
puts("NO");
return;
}
puts("YES");
}
}
signed main () {
int t;
cin >>t;
while (t --) solve();

}

对于第一种情况思考到了,但是没有思考第一种情况成立的条件,及n的范围,这里是先排完序,然后通过对比[n - x+1, x]是否是原来的数,然后判定是否为YES,NO下次注意思考范围的分类讨论