hdu5600 N bulbs

来源:互联网 发布:在美国如何使用淘宝 编辑:程序博客网 时间:2024/05/17 01:57
#include <stdio.h>
#include <string.h>


int main()
{
    int i, j, T, N, num, time;
    scanf("%d", &T);
    while(T--)
    {
        time = 0;
        scanf("%d", &N);
        scanf("%d", &num);
        if(N == 1)
        {
            if(num == 1)    printf("YES\n");
            else    printf("NO\n");
            continue;
        }
        if(num == 0) time ++;
        N --;
        while(N --)
        {
            scanf("%d", &num);
            if(num == 0) time ++;
        }
        if(time % 2 == 0) printf("YES\n");
        else printf("NO\n");
    }
    return 0;

}

心得:本以为是道水题,结果挺有意思的。本题很像我们小时候玩过的游戏,类似于华容道,具体想不起来了。思路:一次走过去既然可以往回走改变状态,那01分布的位置就不重要了,具体在于个数。为1的一次走过,所以很容易变为0;重点是为0的元素,每个可以借助相邻元素变化(两个或偶数个),但当其为奇数个时总有一个变一次从而变为1而没有元素与其匹配,所以当0的个数为偶数个时就可以通过,从而将元素全变为0。注意N=1的特殊情况。

还没完全相同,回家再想,就要做火车回家喽,22小时,好兴奋~

0 0
原创粉丝点击