题意:
给一个0,1组成的环,问是否可以通过交换间隔为1的两个数使所有1相邻。
分析:
冒泡排序就是交换相邻2个数可以把任何序列排成升序,用这一性质奇偶讨论下就好。
代码:
//poj 1063
//sep9
#include <iostream>
using namespace std;
int main()
{
int cases;
scanf("%d",&cases);
while(cases--){
int n,x,cnt1=0,cnt2=0;
scanf("%d",&n);
for(int i=0;i<n;++i){
scanf("%d",&x);
if(i&1){
if(x) ++cnt1;
}else{
if(x) ++cnt2;
}
}
if(n&1) puts("YES");
else{
if(abs(cnt1-cnt2)<=1)
puts("YES");
else
puts("NO");
}
}
return 0;
}