这题是目的是把黑球和白球分开连续放,事实上只要把其中一种颜色分好在一边就可以,可以绕一个球转即是第n个球可以放在n-2或者n+2上,因为这是个环,所以只需要把黑球或者白球连续放好就可以,当一共有奇数个球时,如:7个 x 1 0 1 0 1 0(x为任意颜色球)——x一开始是为奇位,然后开始把x向右移动。0 1 x 1 0 1 0——0 1 0 1 x 1 0——0 1 0 1 0 1 x——0 x 0 1 0 1 1(注意这是环) 到这里x到了偶数位。。所以就是说当总球数为奇时奇偶位是可以互换的。所以当总球数为奇数时,无论如何都能分好。当总球数为偶数时,任意选一种球判断,我们假如分好了,那偶数位上的黑球和奇数位上黑球个数相差最大只能为1。所以以此判定
#include<stdio.h>
#include<math.h>
int a[];
int main()
{
int n,sum,i,ji=,ou=;
scanf("%d",&n);
while(n--)
{
scanf("%d",&sum);
for(i=;i<sum;i++)
{
scanf("%d",&a[i]);
if(a[i]==&&i%==)
ji++;\\判断白球在奇数位置有几个
else if(a[i]==&&i%!=)
ou++;\\判断白球在偶数位置有几个
}
if(sum%!=||fabs(ou-ji)<=)
printf("YES\n");
else
printf("NO\n");
}
return ; }