POJ 1063 Flip and Shift 智力题

POJ 1063 Flip and Shift 智力题

一个小游戏。挺好玩的。
http://acm.pku.edu.cn/JudgeOnline/problem?id=1063

flip 和 shift 两种操作结合起来可以将任意的黑子向任意方向移动偶数步。

分两种情况:


1.有奇数个槽时:
位于奇数位置的黑子也可以移动到偶数位置中,因为可以两个方向移动。
所以可以将任意黑子移动到任意位置。
所以无论什么情况都能达到goal

2.有偶数个槽时:
位于奇数位置的黑子永远位于奇数位置
位于偶数位置的黑子永远位于偶数位置
所以奇数位置的黑子和偶数位置的黑子相差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;
}



你可能感兴趣的:(POJ 1063 Flip and Shift 智力题)