Cogs 2546. 取石块儿(博弈)
- 取石块儿
★ 输入文件:tstones.in 输出文件:tstones.out 简单对比
时间限制:1 s 内存限制:256 MB
问题描述
小L和小T进行取石块儿游戏,给定一个整数n表示石块儿总数,给定一个整数k表示每次最多能拿走的石块儿数量,小L先手,每次能拿走1~k个石块儿,他们中总会有一个人最后拿走s块儿石块儿,使得剩余石块儿数量为0,则最后一个拿走剩下石块儿的人获胜,另外一个人失败。小T非常聪明,小L绝顶(秃子(逃))聪明,请判断小T是否能取胜。
输入格式
第一行一个整数T表示数据组数,接下来T行每行两个整数n,k意义为描述所给。
输出格式
对于每组数据,输出”YES”或者”NO”(不带引号),代表小T是否能够获胜。
输入样例
2
2 1
10 4
输出样例
YES
YES
数据范围
大胆骗分出奇迹!
对于10%的数据,1≤k≤n≤5
对于另外10%的数据,k=1,1≤n≤10000
对于另外20%的数据,1≤k≤n≤1000,T≤10
对于另外40%的数据,1≤k≤n≤unsigned int
对于全部的测试数据,1≤k≤n≤unsigned long long,1≤T≤1000000
/*
博弈.
当n<=k时,显然先手必胜.
否则n=k+1时先手必败.
n属于[k+2,2k+1]时,总能回到n=k+1的状态,所以先手必胜.
同理 n=2(k+1),3(k+1)时先手必败......
所以 k+1|n时先手必败
否则先手必胜.
*/
#include<cstdio>
#define LL unsigned long long
using namespace std;
LL t,n,k;
inline LL read()
{
LL x=0;char ch=getchar();
while(ch<'0'||ch>'9') ch=getchar();
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x;
}
int main()
{
freopen("tstones.in","r",stdin);
freopen("tstones.out","w",stdout);
t=read();
while(t--)
{
n=read(),k=read();
if(n%(k+1)==0) printf("YES\n");
else printf("NO\n");
}
return 0;
}
Cogs 2546. 取石块儿(博弈)的更多相关文章
- 计蒜客 取数游戏 博弈+dp
题目链接 取数游戏 思路:dp(x, y)表示先手在区间[x, y]能取得的最大分数.当先手取完,就轮到后手去,后手一定会选择当前能令他得到最大分数的策略,其实当先手在[x, y]区间两端取走一个数, ...
- java实现取球类的博弈问题
1.问题描述: 今盒子中有n个小球,A,B两人轮流从盒子中取球,每个人都可以看到对方的取球数目. 规定如下: 取球只能取1,3,7,8四种情况.如果没有球取了,则输了.规定A先取球,给定初始球的数目, ...
- hdu 2516 取石子游戏 (博弈)
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 【BZOJ3895】取石子(博弈,记忆化搜索)
题意: Alice和Bob两个好朋含友又开始玩取石子了.游戏开始时,有N堆石子排成一排,然后他们轮流操作(Alice先手),每次操作时从下面的规则中任选一个:1:从某堆石子中取走一个2:合并任意两堆石 ...
- POJ 1067 取石子游戏 [博弈]
题意:威佐夫博弈. 思路:看了很多证明都没看懂.最后决定就记住结论好了. 对于所有的奇异局面(必败局),有通项公式 Pi = (a, b), (a = i * [(sqrt(5) + 1) / 2], ...
- Cogs 452. Nim游戏!(博弈)
Nim游戏! ★ 输入文件:nim!.in 输出文件:nim!.out 简单对比 时间限制:1 s 内存限制:128 MB 甲,乙两个人玩Nim取石子游戏. nim游戏的规则是这样的:地上有n堆石子( ...
- BZOJ.2000.[HNOI2010]stone取石头游戏(博弈)
BZOJ 洛谷 低估这道神题了_(:з」∠)_ MilkyWay好狠啊(小声) \(Description\) 有一些数字,被分成若干双端队列(从两边都可以取)和最多两个栈(只能从某一边一个一个取)的 ...
- BZOJ5435: 取石子(博弈)(占位)
5435: 取石子 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 35 Solved: 10[Submit][Status][Discuss] De ...
- NOIP做题练习(day3)
A - 军队 问题描述 给定一个有 \(n\) 个队伍的人组成的序列,第 \(i\) 个队伍 \(i\) 有 \(s[i]\)个人组成,一个 \(l\) 到 \(r\)的子序列是合法的,当且仅当\(( ...
随机推荐
- HTML学习--基础知识
WEB a) 什么是WEB WEB,是基于Internet上的一种应用程序(网页应用程序),WEB页面,简称WEB页(网页),就是保存在服务器端上的一个具体的页面 b) WEB ...
- Arm-Linux 移植 Nginx
有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...
- 7、注解@Mapper、@MapperScan
7.注解@Mapper.@MapperScan 2018年09月20日 11:12:41 飞奔的加瓦 阅读数 3284 版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Python之模型的保存和加载-5.3
一.模型的保存,主要是我们在训练完成的时候把训练下来的数据保存下来,这个也就是我们后续需要使用的模型算法.模型的加载,在保存好的模型上面我们通过原生保存好的模型,去计算新的数据,这样不用每次都要去训练 ...
- 有状态的bean和无状态的bean的区别
有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”:一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束.即每个用户最初都会得到一个初 ...
- H5调起IOS原生商店支付
参考文档:http://www.html5plus.org/doc/zh_cn/payment.html 申请内购项目摘自 https://www.jianshu.com/p/1e79bfbe46e2 ...
- 微信小程序组件通信入门及组件生命周期函数
组件生命周期函数链接地址:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/lifetimes.h ...
- Java新功能之方法引用
方法引用的使用 最初,引用只是针对引用类型完成的,也就是只有数组.类.接口才具备引用操作.JDK1.8后追加了方法引用.实际上引用的本质就是别名. 因此方法的引用就是别名的使用. 方法的引用有四种形式 ...
- day26-python之封装
1.动态导入模块 # module_t=__import__('m1.t') # print(module_t) # module_t = __import__('m1.t') # print(mod ...
- SIM900 HTTP POST
AT+SAPBR=3,1,"CONTYPE","GPRS" OK AT+SAPBR=3,1,"APN","CMNET" ...