zoukankan      html  css  js  c++  java
  • poj 1704

    一开始以为是动态规划呢,因为题号是从动态规划题目列表中找到的,但后来实在做不出来,也没做过NIM游戏,看了看一些大牛的解题资料,然后看了NIM游戏,才做了出来。

    NIM游戏 百度百科讲的很详细:http://baike.baidu.com/view/1101962.htm

    题目描述:http://poj.org/problem?id=1704

    假设出现整个格子两两一对都互相挨着的情况(如果是奇数,则最左边的棋子在最左边的位置,即1位,假设和0位互相挨着),那么无论第一个人怎么移动,第二个人总能弄出两两一对都互相挨着的情况,那么谁先作出这种情况,那么他就胜利了。

    而两两之间的格子恰巧可以看成NIM游戏。

    一下是代码:

    #include <stdio.h>
    #include <stdlib.h>
    int comp(const void *a,const void *b)
    {
    return *(int *)a-*(int *)b;
    }
    int main(int argc, char** argv) {

    int n,i,j,k,yh,a[1000];

    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
    scanf("%d",&k);
    yh=0;
    for(j=0;j<k;j++)
    {
    scanf("%d",&a[j]);
    }
    if(k%2==1)
    {
    a[k++]=0;
    }
    qsort(a,k,sizeof(int),comp);

    for(j=0;j<k;j+=2)
    {
    yh^=a[j+1]-a[j]-1;
    }
    if(yh!=0)
    {
    printf("Georgia will win\n");
    }
    else
    {
    printf("Bob will win\n");
    }

    }

    return (EXIT_SUCCESS);
    }
  • 相关阅读:
    软件上线标准
    rap使用手册
    微服务
    什么是集合?
    什么是maven?maven中的pom文件是做什么的?
    什么是连接池?
    架构
    什么是反射?
    产品
    描述下fastJSON,jackson等等的技术
  • 原文地址:https://www.cnblogs.com/fengyuehan/p/2388863.html
Copyright © 2011-2022 走看看