zoukankan      html  css  js  c++  java
  • hdu 5591 ZYB's Game

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5591

    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

        博弈:当n=1时肯定第二个人赢。当n>=2时,x=1或x=n是肯定第一个人赢。对与其它情况,如果能取的数关于x对称,那么必定第二个人赢,因为不管第一个人取什么数,第二个人都取它对称的数,最后不定第一个人取x。所以当n为偶数时,不管x在什么位置,都是第一个人赢,因为开始所有数不关于x对称,第一人取数后就能让剩下的数关于x对称。当x为奇数时,x只有在中间位置才能第二个人赢,其它位置和偶数情款一样的。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 int main(){
     6     int t,n;
     7     scanf("%d",&t);
     8     while (t--){
     9         scanf("%d",&n);
    10         if (n%2==1) printf("1
    ");
    11         else printf("0
    ");
    12     }
    13 }
  • 相关阅读:
    用java实现的微信公众号爬虫
    装饰模式
    输入一个数,查询该数是否为素数
    Machine-learning-DecisionTree
    Circles of Waiting
    GRE阅读
    云数据库POLARDB产品解读之二:如何做到高性价比
    奉上一份云上数据安全保护指南
    从双十一看阿里云安全的“创世纪”——采访阿里云安全掌门人肖力有感
    阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?
  • 原文地址:https://www.cnblogs.com/pblr/p/5028661.html
Copyright © 2011-2022 走看看