#include <stdio.h>
//可以证明当几个数可以按相邻的方式交换的话,那么这些数的全排列的所有情况都是等价的,由一种情况可以推出其他任何情况
int main()
{
int n, t, a, b, i, s[40];
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
for(i=0; i<n; i++)
scanf("%d", &s[i]);
if(n&1) //当n为奇数时,所有的数都可以连成一块儿,直接yes
{
printf("YES\n");
continue;
}
a = b = 0;
for(i=0; i<n; i++)
{
if(i&1) b += s[i];
else a += s[i];
}
if(a - b < 2 && a - b > -2) //当奇数位与偶数为相差1之内时可以满足题意
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
zoj 1028 Flip and Shift【水】
最新推荐文章于 2018-11-18 14:53:16 发布