题目链接:Odd Swap Sort
题意:当两数和为奇数可以进行交换,问一个数组是否可以变成递增序列
题解:奇偶性相同的两数一定不可交换,统计奇数是否是递增序列和偶数是否是递增序列,因为元素的相对位置是不可改变的
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
const int maxn=1e5+5;
int a[maxn],b[maxn];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
//vector<int>a,b;
cin>>n;
int g=0,k=0;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(x%2==0)
a[g++]=x;
//a.push_back(x);
else
b[k++]=x;
//b.push_back(x);
}
int f=0;
for(int i=0;i<g-1;i++)
if(a[i]>a[i+1])
f=1;
for(int i=0;i<k-1;i++)
if(b[i]>b[i+1])
f=1;
if(f)
cout<<"NO"<<endl;
else
cout<<"YES"<<endl;
}
}