Brave 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)的倍数,就能最后获胜。
Brave Game
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11917 Accepted Submission(s): 8039
今天,大家选择上机考试,就是一种勇敢(brave)的选择;这个短学期,我们讲的是博弈(game)专题;所以,大家现在玩的也是“勇敢者的游戏”,这也是我命名这个题目的原因。
当然,除了“勇敢”,我还希望看到“诚信”,无论考试成绩如何,希望看到的都是一个真实的结果,我也相信大家一定能做到的~
各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
1、 本游戏是一个二人游戏;
2、 有一堆石子一共有n个;
3、 两人轮流进行;
4、 每走一步可以取走1…m个石子;
5、 最先取光石子的一方为胜;
如果游戏的双方使用的都是最优策略,请输出哪个人能赢。
每组测试数据占一行,包含两个整数n和m(1<=n,m<=1000),n和m的含义见题目描述。
代码解决:
package cn.hncu.acm;import java.util.Scanner;
/** 巴什博奕:*/
public class P1846 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int c=sc.nextInt();while(c-->0){int n=sc.nextInt();int m=sc.nextInt();if(n%(m+1)==0){System.out.println("second");}else{System.out.println("first");}}}
}
Brave Game ——巴什博奕相关推荐
- HDU 1846 Brave Game 【巴什博奕】
Brave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 2149-Public Sale(巴什博奕)
Public Sale Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- D - 邂逅明下 HDU - 2897(有点水平的巴什博奕)
当日遇到月,于是有了明.当我遇到了你,便成了侣. 那天,日月相会,我见到了你.而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事.(以上是废话) 小t和所有世俗的人们一样,期待那百年难遇的日食. ...
- 力扣(LeetCode)292. Nim游戏 巴什博奕
你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函数,来判断你 ...
- 博弈论(巴什博奕,威佐夫博弈,尼姆博弈)
巴什博奕(Bash Game): 只有一堆n个物品,两个人轮流从中取物,规定每次最少取一个,最多取m个,最后取光者为胜 举一个最简单的例子就是,当n=m+1时,此时不管先手取多少,后手都能把剩下的取完 ...
- 博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase)
博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase) 转载自: http://tieba.baidu.com/p/1474319443 http://blog.sin ...
- 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
一. 巴什博奕(Bash Game): A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30.这应该是最古老的关于巴什博奕的游戏了吧. 其实如果知道原理,这游戏一点运气成分都没有,只和先手 ...
- 四种基础博弈 巴什博奕+威佐夫博奕+斐波那契博弈+K倍博弈
博弈论(Game Theory) 博弈论是指研究多个个体或团队之间在特定条件制约下的对局中利用相关方的策略,而实施对应策略的学科.有时也称为对策论,或者赛局理论,是研究具有斗争或竞争性质现象的理论和方 ...
- 博弈论一 [ 巴什博奕 ]
首先,这基本是关于ACM博弈论得一系列文章吧. 今天先讲一个最简单得博弈--巴什博奕. 其游戏规则是这样的: 有一堆n个石子,两个足够聪明的人玩,每个人可以去1-m个石子,取到最后一个石子为胜. 比如 ...
最新文章
- .NET读写Excel工具Spire.Xls使用(1)入门介绍
- java gson使用_Java 中 Gson的使用
- 聚类 高维聚类 聚类评估标准 EM模型聚类
- hiveSql常见错误记录
- 笨方法“学习python笔记之urlopen
- PostgreSQL相关知识概念
- 数十名工程师作战 5 天,阿里达摩院连夜研发智能疫情机器人
- linux添加计划任务(转载)
- 大数据导论章节答案_大数据概论智慧树章节答案
- JVisualVM监控
- 一人行,必有我师焉 2020.11.22日记
- Navicat 压缩包免费下载
- 动静兼济总相宜——Java与.NET之外的语言视界
- Java学习软件安装详解
- java比较器原理理解
- 目前最好用的洞洞板布线软件LochMaster-ver.4.0
- 使用RedisTemplate 设置key有前缀 \xAC\xED\x00\x05t\x00\x04 value有前缀 \xAC\xED\x00\x05t\x00\x08 问题解决
- 安装pointgray灰度相机,mindvison,pointgray偏振相机的ubuntu驱动
- MIPCMS-005高仿JustNews自适应博客资讯模版
- GPU利用率低的解决办法