BestCoder Round #65 B. ZYB's Game(组合游戏)
来源:互联网 发布:网站连接数据库的函数 编辑:程序博客网 时间:2024/05/22 02:01
题意:
给定[1,N]范围猜数字,且猜测双方一开始就知道X,假设双方采取最优策略,猜中的人输,求后手胜利的X个数
分析:
考虑问题的等价问题,对于一个X,将序列分为[1,X−1]和[X+1,N]
那么每次猜测一个数字即为取这两堆数字中的其中一堆的一些数字
比如说猜测Y在第二个范围,那么剩余序列为[1,Y−1],即为取了[Y,N],显然这就是一个Nim游戏了
那么当且仅当N为奇数且X=N/2时,后手必胜,此时当前局面的Nim和为0,因为左右两个序列的数字个数相等
考虑构造一个必胜策略,先手无论怎么取,后手只要在另一堆中和先手取的个数一样就可以必胜了
比如就如前面那个剩余[1,Y−1],只要先手猜Z,此时剩余[Z+1,Y−1],假设Z=N−Y+1
N为偶数时,当前Nim和不为0,后手必败
所以本题答案为 printf("%d\n", N & 1);
0 0
- BestCoder Round #65 B. ZYB's Game(组合游戏)
- BestCoder Round #65 ZYB's Game
- BestCoder Round #65 ZYB's Game
- BestCoder Round #65 1002 ZYB's Game HDU5591
- 【BestCoder Round 65B】【博弈 对称思想】ZYB's Game 范围取数都知道x谁取到x谁必败
- BestCoder Round #65 D. ZYB's Tree(树形dp)
- BestCoder Round #65 ZYB's Biology
- BestCoder Round #65 ZYB's Premutation
- BestCoder Round #65 HDOJ5592 ZYB's Premutation(树状数组+二分)
- BestCoder Round #65 1001 ZYB's Biology HDU5590
- BestCoder Round #65 C. ZYB's Premutation(线段树求第k大)
- BestCoder Round #65 HDU 5592 ZYB's Premutation (数据结构查询第K大)
- BestCoder Round #65 HDU 5593 ZYB's Tree (树形DP)
- BestCoder #65 1004 ZYB'S Tree(树形DP)
- BestCoder #65 1003 ZYB's Premutation
- 【BestCoder Round 65A】【水题】ZYB's Biology DNA与RNA是否匹配
- BestCoder Round #75 King's Game
- BestCoder Round #75 King's Game
- Ubuntu安装Tornado
- Activity的启动模式与flag详解
- Ubuntu有线网络不稳定掉线
- Cocos3.0学习笔记-Acition-基本动作
- Ubuntu和Widnows系统时差问题
- BestCoder Round #65 B. ZYB's Game(组合游戏)
- BestCoder Round #65 C. ZYB's Premutation(线段树求第k大)
- xutils 关于下载文件。
- BestCoder Round #65 D. ZYB's Tree(树形dp)
- 购物车页面去掉ecshop国家省市区客户手动填写收货地址的方法
- 搜狗2016 C++笔试题
- c++实现的任意进制数转十进制数算法
- 【转】unity跨平台文件操作详解
- thinkphp3.2 跨控制器调用