蓝桥杯第三届省赛JAVA真题----取球博弈
题目描述
今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。
我们约定:
每个人从盒子中取出的球的数目必须是:1,3,7或者8个。
轮到某一方取球时不能弃权!
A先取球,然后双方交替取球,直到取完。
被迫拿到最后一个球的一方为负方(输方)
请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?
程序运行时,从标准输入获得数据,其格式如下:
先是一个整数n(n<100),表示接下来有n个整数。然后是n个整数,每个占一行(整数<10000),表示初始球数。
程序则输出n行,表示A的输赢情况(输为0,赢为1)。
例如,用户输入:
4
1
2
10
18
则程序应该输出:
0
1
1
0
注意:
请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!
在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可
解析:题目中两人都很聪明,不会做出错误的判断说明两个人都会按照最优的策略进行取球,即A一定会想让B的状态变成1,3,7,8的情况,B也一定会想让A的状态变成1,3,7,8的情况。那么只要找出A必赢和必输的点就可以了。下面的程序遍历出来10000个数中所有a会赢的点,输出即可。
import java.util.Scanner;public class Main {static int b[] = {1, 3, 7, 8};static boolean a[] = new boolean[10010];public static void main(String[] args) {Init();Scanner input = new Scanner(System.in);int N = input.nextInt();while (N-- > 0) {int n = input.nextInt();System.out.println(a[n] ? 1 : 0);}}private static void Init() {for (int i = 1; i < 10000; i++) {if (!a[i]) {for (int j = 0; j < 4; j++)a[i + b[j]] = true;}}}
}
蓝桥杯第三届省赛JAVA真题----取球博弈相关推荐
- 蓝桥杯第八届省赛JAVA真题----k倍区间
标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...
- 蓝桥杯第八届省赛JAVA真题----油漆面积
标题:油漆面积 X星球的一批考古机器人正在一片废墟上考古. 该区域的地面坚硬如石.平整如镜. 管理人员为方便,建立了标准的直角坐标系. 每个机器人都各有特长.身怀绝技.它们感兴趣的内容也不相同. 经过 ...
- 蓝桥杯第八届省赛JAVA真题----Excel地址
标题: Excel地址 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如, A表示第1列, B表示第2列, Z表示第26列, AA表示第27列, AB表示第28列, BA表示第53列, ...
- 蓝桥杯第八届省赛JAVA真题----9数算式
标题:9数算式 观察如下的算式: 9213 x 85674 = 789314562 左边的乘数和被乘数正好用到了1~9的所有数字,每个1次. 而乘积恰好也是用到了1~9的所有数字,并且每个1次. 请你 ...
- 蓝桥杯第八届省赛JAVA真题----包子凑数
标题:包子凑数 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼都有非常多笼,可以认为是无限笼. 每当有顾客想买X个包子,卖包子的大叔就会 ...
- 蓝桥杯第八届省赛JAVA真题----分巧克力
标题: 分巧克力 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们. 小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N 块巧克 ...
- 蓝桥杯第八届省赛JAVA真题----正则问题
描述:正则问题 考虑一种简单的正则表达式: 只由 x ( ) | 组成的正则表达式. 小明想求出这个正则表达式能接受的最长字符串的长度. 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字 ...
- 蓝桥杯第五届省赛JAVA真题----n级台阶
有n级台阶.从地面(第0级)出发,首先连续的上台阶,上到不超过第n级的某一个位置后再连续的下台阶,直到回到地面.若每次上下台阶只允许走1级或2级,请问可能的上下台阶的方案数是多少? 特别地,在0级站着 ...
- 蓝桥杯第八届省赛JAVA真题----拉马车
标题:拉马车 小的时候,你玩过纸牌游戏吗? 有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友. 其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机 ...
最新文章
- 实体框架高级应用之动态过滤 EntityFramework DynamicFilters
- git 撤销全部的commit_git 撤销commit
- 【数理知识】《随机过程》方兆本老师-第3章-Markov 过程
- Python闭包的使用
- 神器-unity插件-Odin
- 光流 | 金字塔迭代(Iterative Pyramidal)LK光流算法(Matlab源代码)
- Matrix工作室人事管理规章
- .NET Core整合log4net以及全局异常捕获实现2
- 麦克风阵列音频检查方法和标准
- 客运售票员_「我做一天春运人」体验通村客车售票员兼安全员 温馨慢车上我背着太阳奔跑...
- 鸿蒙系统速度和ios,鸿蒙系统到底和苹果安卓有什么区别
- 章节三、2-方法_演示实例
- 计算机等级考试四级有多少题,全国计算机等级考试四级试题(一)
- vb6.0 listview隐藏水平方向滚动条_为Vuetify的UI组件添加滚动条
- VC编译项目时缺少atlrx.h的解决办法
- [leetcode]5169. 日期之间隔几天
- 编译 java_如何编译java
- [渝粤教育] 江西财经大学 税法 参考 资料
- 【书评】《IPD 华为研发之道》(著者:刘选鹏)
- 动手学深度学习-04 过拟合、欠拟合及其解决方案
热门文章
- mysql 操作表的例子,mysql中库和表的简单操作总结(附示例)
- java义一个方法,返回一组双色球票数
- linux文件赋予755权限,Linux文件和目录的777、755、644权限解释
- Redis的超时命令和垃圾回收策略
- Redis有序集合详解
- C++跳过(忽略)指定字符
- 悬浮窗java_Java制作一个简易的悬浮窗/PPT悬浮窗
- 【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)
- 【OpenCV 例程200篇】03. 图像的显示(cv2.imshow)
- python里面的dict和set