取石子(一)

时间限制:3000 ms  |  内存限制:65535 KB
难度:2

描述
一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若干个,每次最多取M个(1<=M<=1000000),最先把石子取完者胜利。我们知道,TT和他/她的室友都十分的聪明,那么如果是TT先取,他/她会取得游戏的胜利么?

输入
第一行是一个正整数n表示有n组测试数据
输入有不到1000组数据,每组数据一行,有两个数N和M,之间用空格分隔。
输出
对于每组数据,输出一行。如果先取的TT可以赢得游戏,则输出“Win”,否则输出“Lose”(引号不用输出)
样例输入
2
1000 1
1 100
样例输出
Lose
Win
来源
经典题目
上传者

张云聪

题解:

一开始低估了这个难度为2的问题,却发现却不是那么的简单,查了资料,原来是博弈问题

巴什博奕(Bash Game):
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。
显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。

#include <stdio.h>int main()
{int t;scanf("%d", &t);while (t--){int n, m;scanf("%d%d", &n, &m);if (n % (1 + m))printf("Win\n");elseprintf("Lose\n");}return 0;
}

转载于:https://www.cnblogs.com/fayne/p/7224805.html

NYOJ_23_取石子(一)相关推荐

  1. 洛谷P2252 取石子游戏(威佐夫博弈)

    题目背景 无 题目描述 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...

  2. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)

    Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 871  Solved: 365 [Submit][Status][Discuss] Descripti ...

  3. bzoj1874: [BeiJing2009 WinterCamp]取石子游戏

    1874: [BeiJing2009 WinterCamp]取石子游戏 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 834  Solved: 350 ...

  4. 梦工厂实验室 取石子之fans 博弈

    问题 D: 取石子之fans 时间限制: 1 Sec  内存限制: 64 MB 提交: 57  解决: 26 [提交][状态][讨论版] 题目描述 Yougth和Hrdv玩一个游戏,拿出n个石子摆成一 ...

  5. 洛谷 P4706 取石子 解题报告

    P4706 取石子 题目描述 现在 Yopilla 和 yww 要开始玩游戏! 他们在一条直线上标记了 \(n\) 个点,从左往右依次标号为 \(1, 2, ..., n\) .然后在每个点上放置一些 ...

  6. Wannafly 挑战赛16 A 取石子

    题目描述 给出四堆石子,石子数分别为a,b,c,d.规定每次只能从堆顶取走石子,问取走所有石子的方案数. 输入描述: 在一行内读入四个由空格分隔的整数a,b,c,d, 输入均为不超过500的正整数 输 ...

  7. NYOJ 23 取石子

    取石子(一) 时间限制:3000 ms  | 内存限制:65535 KB 难度:2 描述 一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子.游戏的规 ...

  8. 【hdu 1527】取石子游戏

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...

  9. 威佐夫博弈:百练OJ:1067:取石子游戏

    威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...

  10. NYOJ 888 取石子(九)

    取石子(九) 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 最近TopCoder的Yougth和Hrdv在玩一个游戏,游戏是这样的. 有n堆石子,两个人轮流从其中某一堆 ...

最新文章

  1. 『Python基础-11』集合 (set)
  2. [置顶]WebService学习总结(4)——第三方webService服务调用
  3. 【Flask】ORM高级操作之分组、过滤和子查询
  4. CSS定位网页中的元素
  5. H5 Canvas maximum-scale图像模糊解决办法
  6. php多个表查询的方法_php+mysql+ajax实现单表多字段多关键词查询的方法
  7. 偏光太阳镜测试图片软件,[专题]真假偏光太阳镜简单、实用辨别方法!
  8. laravel 框架中的路由
  9. GoogleChrome最新的代理设置流程
  10. 软件工程--可行性研究过程详解
  11. html实现圆形图片
  12. Java 小Q 世界上最遥远的距离 解法二
  13. html页面在线预览PDF文件
  14. 还没收到win11系统的推送?教你这样可以直接升级win11
  15. bzoj4605 崂山白花蛇草水 权值线段树套kd树
  16. 程序员应该掌握的选择思维模式?
  17. edge浏览器如何将网页转换为pdf
  18. [matlab]过一点与椭圆的切线
  19. 中科院分词系统学习笔记(一)
  20. Android4.4/CM11编译常见错误及解决方法!

热门文章

  1. 梯度下降-从0开始一行代码一解释
  2. 知乎上的48条神回复,针针见血
  3. P5441 【XR-2】伤痕
  4. ES6-字符串扩展-padStart(),padEnd()
  5. vue组件独享守卫钩子函数参数详解(beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave)...
  6. Arduino学习笔记23
  7. OC @class关键字
  8. day18 8.jdbc中设置事务隔离级别
  9. 定时任务schedule(spring boot )
  10. JSADS-日志对象MyLogger