竞赛
考级
马智辉
DhDyds
袁老师版题解 正宗题解,走过路过不要错过!有帮助点个赞再走吧!没帮助欢迎提出问题所在,感谢各位的支持!
勇敢的小霍皮
非常简单,韩继毅看过来 #include<bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while(t--) { int n,k; cin >> n >>k; int a[n]; bool isDrop = 0; for(int i=0; i<n; i++) { cin >> a[i]; if(i>0 && a[i]<a[i-1]) isDrop=1; } if(k>=2) { cout << "YES"<<endl; }else if (isDrop){ cout << "NO"<<endl; }else{ cout << "YES"<<endl; } } return 0; }
八重神子
CH夸克U
题目大意 给定一个序列,通过对原始序列进行操作,判断最终能否变成一个不下降序列。 题目思路 首先要针对题目的核心操作进行分析,经过分析后发现,操作其实就是将选中序列[ai,aj][a_i,a_j][ai ,aj ]倒置,因此我们可以想到冒泡排序或者选择排序,当kkk大于等于222时,经过操作一定是可以达到目标的,并且如果kkk为1,序列本身成不下降序列也是满足要求的。 时间复杂度分析 该算法的时间复杂度主要就是单层循环,因此是 O(n)O(n)O(n) 的复杂度。 代码演示
AC君