Codeforces Round #672 (Div. 2)
A. Cubes Sorting
题意:
给你一个数组 让你重新排序 使得数组相邻两项不存在递减的情况出现
可以进行 相邻两项之间的 替换 就是冒泡排序
然后 如果 交换次数 大于 n(n-1)/2 就输出NO
否则输出YES
问题分析:
看着n(n-1)/2这个限制。。。
冒泡排序的最差情况貌似就是 这个数字
也就是 整个数组是递减数组
第一位到最后一位,,,、n-1次 第二位到 n-1位置 n-2次
等差数列求和公式。。。。1+2+。。。n-1
所以这个题就是判断是不是存在 最差的情况 是一个递减数组
是的话就是 NO
其他情况 就都是 YES
AC代码:
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<sstream>
#include<algorithm>
using namespace std;
#define ll long long
#define mem(a,b) memset((a),(b),sizeof(a));
const ll inf=0x3f3f3f3f;//1061109567,2*未超int,allinf=mem(a,0x3f,sizeof(a));
const int N=2e5+10;
int a[N];
int main(){
// #define io
#ifdef io
freopen("in.txt","r",stdin);
#endif
int t, n;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
ll sum=0;
for(int i=1;i<