问题描述

杰洛特在面对敌将时,总是需要获得更多的资源才能战胜敌人,很可惜,敌人也是这么想的。
因此他们共同来到一个城市买物资(两位都有无限的钱)
本城市中一共有n个物资,
他们俩轮流进行购买(由杰洛特先买)
每一次购买可以买 1……m 个物资
最先刚好购买光商品的人可以获胜
输入
多组数据输入
每行一个n和m。
0 < m <= n <= 100000
输出
如果是杰洛特胜利则输出"Gerlot",如果是狂猎胜利则输出"Wildhunte" (没有双引号)

思路

这是一个经典的博弈问题
当n≤m时,这时先手的人可以一次取走所有的,先手胜

当n=m+1时,这时先手无论取走多少个,后手的人都能取走剩下所有的,后手胜

当n=k∗(m+1)时,对于每m+1个石子,先手取i个,后手一定能将剩下的(m+1−i)个都取走,因此后手必胜;

当n=k∗(m+1)+x(0<x<m+1)时,先手可以先取x个,之后的局势就回到了上一种情况,无论后手取多少个,先手都能取走m+1个中剩下的,因此先手必胜。

#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <vector>
#include <map>
#include <queue>
#include <cstdio>
#include <string>
#include <stack>
#include <set>
using namespace std;
typedef long long ll;
//题目 2108: 抢夺资源
int main()
{ll n,m;while(cin>>n>>m){if(n%(m+1)==0){cout<<"Wildhunte"<<endl;}else cout<<"Gerlot"<<endl;}getchar();getchar();return 0;
}

【巴什博弈 抢夺资源】相关推荐

  1. 巴什博弈小游戏(Java实现)

    界面截图: 代码: package 巴什博弈;import java.awt.*; import java.awt.event.*; import java.util.ArrayList;import ...

  2. 巴什博弈例题:NYOJ23;HDU:2149,1847,2897,2188

    巴什博弈: 只有一堆n个物品,两个人轮流从这堆物品中取除,每次取的个数为[1,m](至少去一个,最多取m个),最后取完者获胜 特征: 物品只有一堆,简单变形: 要么在范围内不规定个数,要么规定只能取几 ...

  3. Ticket Game CodeForces - 1215D(博弈题,巴什博弈思维)

    题意:两个人玩游戏,通过轮流填数字(0~9),若最终左右两边的和相等,后手赢,否则先手赢.起始有部分数字和空格. 官方题解: 题解翻译: 让我们把余额表示为左半部分数字和右半部分数字和的差.也让我成为 ...

  4. hdu 2149 巴什博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=2149 分析:就是巴什博弈的概念. 题目要求:对于每组数据,在一行里按递增的顺序输出Lele第一次可以加的价.两个 ...

  5. 博弈——巴什博弈(hdu1846,2188,2897)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1846 http://acm.hdu.edu.cn/showproblem.php?pid=2188 ...

  6. 杭电acm 1846 Brave Game(巴什博弈)

    Brave Game                             Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768 ...

  7. hdu 2188巴什博弈

    http://acm.hdu.edu.cn/showproblem.php?pid=2188 分析:巴什博弈. View Code // I'm lanjiangzhou //C #include & ...

  8. HDU2188 选拔志愿者【巴什博弈】

    选拔志愿者 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. HDU 1517 A Multiplication Game 巴什博弈

    题意:2 个人玩游戏,给定一个数n,从 1 开始,轮流对数进行累乘一个数(2~9中取), 直到第一次等于或超过n为赢. 思路:1)找规律 如果n是 2 ~ 9 ,Stan 必胜. 如果输入是 10~1 ...

最新文章

  1. intellij idea的out目录下为什么会有与src名字相同的.class文件呢?
  2. Catch Overflow!
  3. 矩阵求导公式,及MathJax公式编辑
  4. GIT的PUSH指令
  5. Disable Auto Detect Keyboard Layout in Win10
  6. 豆瓣评分9.4,邱锡鹏教授蒲公英书姊妹篇《神经网络与深度学习:案例与实践》重磅来袭...
  7. Umi-—前端应用框架(Umi基础)
  8. 201671030118 词频统计软件项目报告
  9. EAS BOS 序时簿做组织单元隔离
  10. autojs获取手机背景图片,抓取壁纸
  11. 2021年超全超详细的最新大数据开发面试题,附答案解析
  12. clang 中英文帮助手册
  13. Python正则表达式(regular expression)简介-re模块
  14. 【单片机基础】单片机的时序概念
  15. 如何根据LAC和CellID进行手机定位
  16. matlab语音加入正弦噪声,基于Matlab的语音信号去噪声处理 毕业论文.doc
  17. 西门子PLC|梯形逻辑PLC编程
  18. win10一键优化禁用缓存,禁用组件,
  19. 如何利用教育网站源码成功搭建在线教育网站
  20. 什么是GHO 什么是ISO?

热门文章

  1. c++ min/max
  2. macos 升级到 Big Sur 虚拟机的鼠标能动但不能点击
  3. JS新增基本数据类型--BigInt
  4. php.c drcom,成功 将校园客户端drcom搞进openwrt
  5. 顶点计划6-4小组调研报告
  6. 微信修改基本配置信息
  7. 香港中文大学-人脸识别进展-2014-06
  8. c语言浮点数如何精确计算,浮点数精确运算的分析和解决办法
  9. mac强制关机后悲剧了
  10. 手机断触怎么办_手机触摸屏失灵了怎么办,五种方法自己就能修好它!