一個小游戲。挺好玩的。
http://acm.pku.edu.cn/JudgeOnline/problem?id=1063
flip 和 shift 兩種操作結(jié)合起來可以將任意的黑子向任意方向移動偶數(shù)步。
分兩種情況:
1.有奇數(shù)個槽時:
位于奇數(shù)位置的黑子也可以移動到偶數(shù)位置中,因為可以兩個方向移動。
所以可以將任意黑子移動到任意位置。
所以無論什么情況都能達到goal
2.有偶數(shù)個槽時:
位于奇數(shù)位置的黑子永遠位于奇數(shù)位置
位于偶數(shù)位置的黑子永遠位于偶數(shù)位置
所以奇數(shù)位置的黑子和偶數(shù)位置的黑子相差1的時候可以達到goal
#include <stdio.h>
#include <math.h>

int main()


{
int t, n, i, j, arr[2];

freopen("e:\\test\\in.txt", "r", stdin);

scanf("%d", &t);

while (t--)
{
scanf("%d", &n);
arr[0] = arr[1] = 0;

for (i = 0; i < n; i++)
{
scanf("%d", &j);
arr[i & 1] += j;
}
printf("%s\n", (n & 1) || abs(arr[0] - arr[1]) <= 1 ? "YES" : "NO");
}

return 0;
}
