java算法 第七届 蓝桥杯B组(题+答案) 9.取球博弈
9.取球博弈 (程序设计)
两个人玩取球的游戏。
一共有N个球,每人轮流取球,每次可取集合{n1,n2,n3}中的任何一个数目。
如果无法继续取球,则游戏结束。
此时,持有奇数个球的一方获胜。
如果两人都是奇数,则为平局。
假设双方都采用最聪明的取法,
第一个取球的人一定能赢吗?
试编程解决这个问题。
输入格式:
第一行3个正整数n1 n2 n3,空格分开,表示每次可取的数目 (0<n1,n2,n3<100)
第二行5个正整数x1 x2 ... x5,空格分开,表示5局的初始球数(0<xi<1000)
输出格式:
一行5个字符,空格分开。分别表示每局先取球的人能否获胜。
能获胜则输出+,
次之,如有办法逼平对手,输出0,
无论如何都会输,则输出-
例如,输入:
1 2 3
1 2 3 4 5
程序应该输出:
+ 0 + 0 -
再例如,输入:
1 4 5
10 11 12 13 15
程序应该输出:
0 - 0 + +
再例如,输入:
2 3 5
7 8 9 10 11
程序应该输出:
+ 0 0 0 0
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 3000ms
import java.util.Scanner;
public class _9取球博弈 {
public static int [] n = new int[3];
public static int [] init = new int[5];
public static int [] end = new int[1000];
public static char [] sign = {'-','0','0','+'};
public static void main(String [] args){
Scanner scan = new Scanner(System.in);
for(int i = 0; i < 3; i++){
n[i] = scan.nextInt();
}
int Min = Math.min(n[0], Math.min(n[1], n[2]));
for(int i = 0; i < 5; i++){
init[i] = scan.nextInt();
}
for(int i = 0; i < Min; i++){
end[i] = 2;
}
for(int i = Min; i < end.length; i++){
int temp = 0;
for(int j =0; j < 3; j++){
if(i - n[j] < 0)
continue;
else if(end[i-n[j]] == 3){
if(n[j]%2 != 0)
temp = 1 > temp ? 1 : temp;
}
else if(end[i-n[j]] == 0){
if(n[j]%2 == 0)
temp = 3;
else
temp = 2 > temp ? 2 : temp;
}
else if(end[i-n[j]] == 2){
if(n[j]%2==0)
temp = 2 > temp ? 2 : temp;
else
temp = 3;
}
else if(end[i-n[j]] == 1){
if(n[j]%2==0)
temp = 1 > temp ? 1 : temp;
}
}
end[i] = temp;
}
for(int i = 0; i < 5; i++){
System.out.print(sign[end[init[i]]]+" ");
}
}
}
(参考网上的,没有思路0.0)
java算法 第七届 蓝桥杯B组(题+答案) 9.取球博弈的更多相关文章
- java算法 第七届 蓝桥杯B组(题+答案) 10.压缩变换
10.压缩变换 (程序设计) 小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战. 最近,小明需要压缩一些正整数的序列,这些 ...
- java算法 第七届 蓝桥杯B组(题+答案) 8.四平方和
8.四平方和 (程序设计) 四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和.如果把0包括进去,就正好可以表示为4个数的平方和. 比如:5 = 0^2 + 0^2 + ...
- java算法 第七届 蓝桥杯B组(题+答案) 7.剪邮票
7.剪邮票 (结果填空) 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红 ...
- java算法 第七届 蓝桥杯B组(题+答案) 6.方格填数
6.方格填数 (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...
- java算法 第七届 蓝桥杯B组(题+答案) 5.抽签
5.抽签 (代码填空) X星球要派出一个5人组成的观察团前往W星.其中:A国最多可以派出4人.B国最多可以派出2人.C国最多可以派出2人..... 那么最终派往W星的观察团会有多少种国别的不同组合呢 ...
- java算法 第七届 蓝桥杯B组(题+答案) 4.分小组
4.分小组 (代码填空) 9名运动员参加比赛,需要分3组进行预赛.有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法. 该程序的正常输出为:ABC DEF ...
- java算法 第七届 蓝桥杯B组(题+答案) 3.凑算式
3.凑算式 (结果填空) B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~ ...
- java算法 第七届 蓝桥杯B组(题+答案) 2.生日蜡烛
2.生日蜡烛 (结果填空) 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛.现在算起来,他一共吹熄了236根蜡烛.请问,他从多少岁开始过生日party的?请填写他开 ...
- java算法 第七届 蓝桥杯B组(题+答案) 1.煤球数目
1.煤球数目 (结果填空) 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少 ...
随机推荐
- Django之tag标签和filter标签
1.Django的tag常见的标签,可以做一些简单的功能 {%if%} 的使用主要用于做判断,还可以包含{%elif%} 这样的用法,最后要跟上{% endif %}.可以使用你的and,or,not ...
- drill java && spring jdbc 连接使用
原生 jdbc 连接 1. maven 包 <dependency> <groupId>org.apache.drill.exec</groupId> < ...
- 如何在项目中使用requireJS
本文主要讲讲如何在一个项目中合理的使用requireJS,来加载js代码,这里是个实际例子,讲解不多, 看详情请连接到:http://www.cnblogs.com/evaling/p/6722760 ...
- yii2自定义500错误
由于项目想加预警监控,有一块儿是涉及到程序内部错误的500,这样的错误级别比较高,所以就需要捕获这样的错误,顺便自定义了一把视图样式 看了这篇博客,知道了如何去自定义自己错误页面 : http://t ...
- DBUtils 增删改查例子
sql CREATE TABLE [dbo].[Person] ( , ) NOT NULL , ) COLLATE Chinese_PRC_CI_AS NULL , [age] [int] NULL ...
- Unit02: 参数值注入 、 基于注解的组件扫描
Unit02: 参数值注入 . 基于注解的组件扫描 (4)IOC (Inversion Of Controll 控制反转) 什么是IOC? 对象之间的依赖关系由容器来建立. 什么是DI? (Depen ...
- Warning: skipping non-radio button in group. 的处理
1)把你的第一个Radio选中group属性: 2)把你“这个组中”的最后一个Raido控件“后”的一个控件(指得是控件添加先后的顺序,可以用ctrl+d来修改顺序)也选中group属性,如最后一个R ...
- HTTP 报文首部
1.HTTP 报文首部 HTTP 协议的请求和响应报文中必定包含 HTTP 首部.首部内容为客户端和服务器分别处理请求和响应提供所需要的信息. 1)HTTP请求报文:在请求中,HTTP报文由方法.UR ...
- Appium+python自动化25-windows版appium_desktop_V1.7.1
appium_desktop_v1.2.6 1.appium_desktop在github上最新下载地址:releases/tag/v1.2.6 2.下载后傻瓜式安装,然后启动appium,这个界面跟 ...
- Java-Runoob-高级教程:Java 序列化
ylbtech-Java-Runoob-高级教程:Java 序列化 1.返回顶部 1. Java 序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包 ...