zoukankan      html  css  js  c++  java
  • BestCoder Round #65 hdu5591(尼姆博弈)

    ZYB's Game

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 527    Accepted Submission(s): 430


    Problem Description
    ZYB played a game named NumberBomb with his classmates in hiking:a host keeps a number in [1,N] in mind,then 
    players guess a number in turns,the player who exactly guesses X loses,or the host will tell all the players that
    the number now is bigger or smaller than X.After that,the range players can guess will decrease.The range is [1,N] at first,each player should guess in the legal range.

    Now if only two players are play the game,and both of two players know the X,if two persons all use the best strategy,and the first player guesses first.You are asked to find the number of X that the second player
    will win when X is in [1,N].
     
    Input
    In the first line there is the number of testcases T.

    For each teatcase:

    the first line there is one number N.

    1T100000,1N10000000
     
    Output
    For each testcase,print the ans.
     
    Sample Input
    1
    3
     
    Sample Output
    1
     
    题意:两个人玩游戏,给出一个区间【1,n】和一个数x,每次两个人都必须从这个区间内挑出一个数,如果谁先挑到x则谁输,如果都没有挑到x则缩小数组范围(向靠近x处靠拢)
    题解:此题类似尼姆博弈,在两堆分别有若干个石子的堆里取石子(至少取一个,多着不限),每次只能从其中一堆中取,要想胜利只需要让对方在取石子时面临两堆石子相同的局面即可,1、当n是偶数时,无论我们选择那个数都不可能使两边的数的个数相等,所以后手必输,2、当n是奇数时,只有x等于中间的数是,两边的数的个数相等使得先手面临相等的局面,此时后手获胜,所以结果非1即0
     
    #include<stdio.h>
    #include<string.h>
    #include<string>
    #include<math.h>
    #include<algorithm>
    #define LL long long
    #define PI atan(1.0)*4
    #define DD double
    #define MAX 110
    #define mod 10007
    #define dian 1.000000011
    using namespace std;
    int main()
    {
        int t,n,m,i,j;
        scanf("%d",&t);
        while(t--)
        {
        	scanf("%d",&n);
        	if(n%2==0)
        		printf("0
    ");
        	else 
        	    printf("1
    ");
        }
    	return 0;
    } 
    

      

  • 相关阅读:
    HADOOP docker(六):hive简易使用指南
    HADOOP docker(四):安装hive
    HADOOP docker(二):HDFS 高可用原理
    Python 自用代码(调整日期格式)
    Python 自用代码(某方标准类网页源代码清洗)
    python合并多个csv文件并去重
    Python连接MySQL乱码(中文变问号)
    Shell实现循环执行curl向Solr导入json文件
    Python 自用代码(拆分txt文件)
    shell报错:未预期的符号***附近有语法错误
  • 原文地址:https://www.cnblogs.com/tonghao/p/5231533.html
Copyright © 2011-2022 走看看