Cogs 2546. 取石块儿(博弈)
2024-08-24 01:15:57
- 取石块儿
★ 输入文件: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;
}
最新文章
- Windows平台使用Gitblit搭建Git服务器图文教程
- 实例详解 DB2 排序监控和调优
- The server does not support version 3.0 of the J2EE Web module specification
- some tips
- 【BZOJ】【1050】【HAOI2006】旅行comf
- linux端口转发
- 未能加载文件或程序集“System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
- (原+转)ubuntu16中安装opencv2.4.11
- android app安全问题设置
- beagleboneblack HDMI不能显示
- [Swift]LeetCode414. 第三大的数 | Third Maximum Number
- 面嚮對象程序設計第一單元作業——OO初試
- 获取SpringMVC所有的rest接口及其对应函数信息
- css元素溢出
- HAProxy出现";远程主机强迫关闭了一个现有的连接 "; 的错误及解决
- SpringBoot自定义线程池处理异步任务
- [HDU 1976] Software Version
- ESB企业服务总线
- 使用Idea创建多Module工程
- [luogu 1070]道路游戏(NOIP2009T4)
热门文章
- jwt 0.9.0(一)推荐jwt理由
- ThreadPoolExecutor使用错误导致死锁
- IIS配置文件的XML格式不正确 applicationHost.config崩溃
- python-django中使用事务以及小坑
- Java 之 Stream 流
- DDL 操作表结构
- springBoot集成Redis,RedisTmple操作redis和注解实现添加和清空缓存功能
- el-pagination分页优化
- Python3正则匹配re.split,re.finditer及re.findall函数用法详解
- [ipsec][crypto] 有点不同的数字证书到底是什么