hdu 1850 博弈 经典 n堆石子,先手可以赢的走法

非常巧妙的运用了m^m=0的情况,妙啊

3
5 7 9
0

 

参考代码(http://www.cnblogs.com/lzsz1212/archive/2012/01/06/2315324.html

# include <stdio.h>

int a[110] ;

int main ()
{
    int i, n, k, ans ;
    while (~scanf ("%d",  &n) && n)
    {
        k = 0 ;
        for (i = 0 ; i < n ; i++)
        {
            scanf ("%d", &a[i]) ;
            k ^= a[i] ;
			printf("fz: %d |",k);
        }
        ans = 0 ;
        for (i = 0 ; i < n ; i++)
        {
			if ((a[i] ^ k) < a[i]) ans++ ;
			printf("fz: %d |",a[i] ^ k);
		}
        printf ("%d\n", ans) ;
    }
    return 0 ;
}

  

posted @ 2012-04-03 11:27  shijiwomen  阅读(214)  评论(0编辑  收藏  举报