HDOJ 5591 ZYB's Game(简单博弈)
来源:互联网 发布:淘宝 省钱快报 编辑:程序博客网 时间:2024/06/06 01:30
ZYB's Game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 72 Accepted Submission(s): 64
Problem Description
players guess a number in turns,the player who exactly guesses
the number now is bigger or smaller than
Now if only two players are play the game,and both of two players know the
will win when
Input
In the first line there is the number of testcasesT .
For each teatcase:
the first line there is one numberN .
1≤T≤100000 ,1≤N≤10000000
For each teatcase:
the first line there is one number
Output
For each testcase,print the ans.
Sample Input
13
Sample Output
1
题意: 有1~N个数,由两个人猜数,谁猜到X这个数,谁就输。 若猜的不是X,则主持人就会说当前这个数比X大还是小,限定接下来猜的范围。 现在这两个人都知道X的具体数值,均采用最优策略猜数,X在1~N中,问能让后手赢的X的个数有几个。
题解:很明显的博弈问题,当N=1时,后手必赢,能让他赢的X的个数只有一个,当N=2时,先手是不会猜X的,那么剩下的数就是X,后手必输,能让他赢的X的个数为0。 当N=3时,只有当X=2时,先手猜1或3,后手再猜剩下的3或者1,那么后手就能赢,能让他赢的X=2,只有这一个。就这么推下去,发现当N为奇数时,能让后手赢的数只有一个,X=(1+N)/2。 当N为偶数时,不存在让后手赢的X。
代码如下:
#include<cstdio>#include<cstring>int main(){int t,n;scanf("%d",&t);while(t--){scanf("%d",&n);if(n&1)printf("1\n");elseprintf("0\n");}return 0;}
0 0
- HDOJ 5591 ZYB's Game(简单博弈)
- HDOJ 5591 ZYB's Game 【简单博弈 】
- 【博弈】HDOJ ZYB's Game 5591
- HDOJ 5591 ZYB's Game
- hdoj-5591-ZYB's Game
- HDU5591 - ZYB's Game (简单博弈)
- HDU 5591 ZYB's Game(博弈)
- hdoj 5591 ZYB's Game 【水题】
- HDU 5591 ZYB's Game(博弈水题)
- HDU 5591 ZYB's Game
- HDU 5591 ZYB's Game
- hdoj ZYB's Game 5901 (数学规律题)
- HDU 5591 ZYB's Game(取石子)
- 杭电5591 ZYB's Game
- hdu 5591 ZYB's Game(水)
- hdu5591 ZYB's Game
- ZYB's Game
- HDOJ 1525 Euclid's Game 博弈
- 数据链路层
- Django 多数据库联用
- Go的50度灰:Golang新开发者要注意的陷阱和常见错误
- python scikit learn 文本分类
- HDU 5592 ZYB's Permutation(树状数组)
- HDOJ 5591 ZYB's Game(简单博弈)
- 社会化分享的简单实现
- 【PAT】1105. Spiral Matrix (25)
- Optional变量的?和!的区别
- iOS新闻客户端开发教程-完整教程目录
- Ehcache整合spring配置
- LeetCode 278 : First Bad Version (Java)
- Linux命令-权限设置
- 有向图(2)--深度优先搜索&&广度优先搜索