#include<iostream> #include<algorithm> #include<vector> #define IOS ios::sync_with_stdio(0);cin.tie(0), cout.tie(0); using namespace std; const int N = 2e5 + 10; int T; bool check1(vector<int> &a, int m) { int ll = 0, len = -1; for(int i = 1; i < a.size(); ++ i) if(a[i] != a[i - 1] + 1) { len = max(len, i - ll); ll = i; } len = max(len, int(a.size()) - ll); return len >= m; } bool check2(vector<int> &a, int m) { int ll = 0, len = -1; for(int i = 1; i < a.size(); ++ i) if(a[i] != a[i - 1] - 1) { len = max(len, i - ll); ll = i; } len = max(len, int(a.size()) - ll); return len >= m; } signed main() { IOS cin >> T; while(T--) { int n, m; cin >> n >> m; vector<int> a(n); for(int i = 0; i < n; ++ i) cin >> a[i]; if(n != int(unique(a.begin(), a.end()) - a.begin())) { cout << "NO\n"; continue; } if(n == 1 || m == 1) { cout << "YES\n"; continue; } vector<int> ma = a; sort(ma.begin(), ma.end()); for(int i = 0; i < n; ++ i) a[i] = lower_bound(ma.begin(), ma.end(), a[i]) - ma.begin(); if(check1(a, m) || check2(a, m)) cout << "YES\n"; else cout << "NO\n"; } } 改成c++版代码部分数据就过不了,想知道为啥</int></int></int></int></vector></algorithm></iostream>
点赞

相关推荐

04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务