当前位置: 代码迷 >> 综合 >> poj 1063 Flip and Shift 冒泡排序的扩展运用
  详细解决方案

poj 1063 Flip and Shift 冒泡排序的扩展运用

热度:69   发布时间:2024-01-19 05:28:10.0

题意:

给一个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");elseputs("NO");}}return 0;	
}


  相关解决方案