标题:填字母游戏

小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说:
“我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了”。

K大师在纸上画了一行n个格子,要小明和他交替往其中填入字母。

并且:

1. 轮到某人填的时候,只能在某个空格中填入L或O
2. 谁先让字母组成了“LOL”的字样,谁获胜。
3. 如果所有格子都填满了,仍无法组成LOL,则平局。

小明试验了几次都输了,他很惭愧,希望你能用计算机帮他解开这个谜。

本题的输入格式为:
第一行,数字n(n<10),表示下面有n个初始局面。
接下来,n行,每行一个串,表示开始的局面。
比如:“******”, 表示有6个空格。
“L****”, 表示左边是一个字母L,它的右边是4个空格。

要求输出n个数字,表示对每个局面,如果小明先填,当K大师总是用最强着法的时候,小明的最好结果。
1 表示能赢
-1 表示必输
0 表示可以逼平

例如,
输入:
4
***
L**L
L**L***L
L*****L

则程序应该输出:
0
-1
1
1

资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。

package 填字母游戏;import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Main {//nextInt()后有nextLine()一定要在nextInt()之后紧接着多加一个nextLine()static Map<String, Integer> cache;//static static char[] chess = {'L','O'};public static void main(String[] args) {Scanner sc = new Scanner(System.in);cache = new HashMap<>();int n = sc.nextInt();sc.nextLine();String str;while(n-- > 0) {str = sc.nextLine();char[] carr = str.toCharArray();System.out.println(game(carr));}/*for(String s : cache.keySet()) {System.out.println(s);}*/sc.close();}public static int game(char[] arg) {//1->win  -1->lose  0->tieint tag = -1;//System.out.println(String.valueOf(arg));String s = String.valueOf(arg);if(cache.containsKey(s))return cache.get(s);//System.out.println(String.valueOf(arg));if(s.contains("LOL")) {//System.out.println("a");return -1;}else if(!String.valueOf(arg).contains("*")) {//System.out.println("b");tag = 0;}for(int i = 0; i < arg.length; i++) {//System.out.println("c");if(arg[i] == '*') {//System.out.println("d");arg[i] = 'L';int res = game(arg);s = String.valueOf(arg);cache.put(s, res);arg[i] = '*';     //可以不写,因为已经赢了那剩下的下法没有意义了//不可以不写为什么if(res == -1) return 1;if(res == 0)    tag = 0;arg[i] = 'O';res = game(arg);s = String.valueOf(arg);cache.put(s, res);arg[i] = '*';if(res == -1) return 1;if(res == 0) tag = 0;}}return tag;}
}

只能得40分,其他点超时,用递归应该已经不能再优化了,再想优化只能用奇偶性找游戏规律了。不好想,而且不具有普遍性,不准备写了。

转载于:https://www.cnblogs.com/littleblue/p/10899784.html

蓝桥杯2017国赛JAVAB组 填字母游戏 题解相关推荐

  1. c语言填字母游戏蓝桥杯,蓝桥杯2017国赛JAVAB组 填字母游戏 题解

    标题:填字母游戏 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格 ...

  2. 蓝桥杯 2017 国赛B组C/C++【对局匹配】

    题意就是给我们一串数  让我们尽可能地取 约束条件是a[i] 和a[i]+k不能同时出现 所有元素之间相差k的元素都不能同时出现  让我们求所能取到的最大的数的和是多少 分析: dp思路,这个和树形d ...

  3. 蓝桥杯历年省赛JAVA-B组真题汇总及题目详解

    蓝桥杯 历年省赛JAVA-B组真题汇总及题目详解 题目大致介绍: 第一题到第三题以及第六题是结果填空,方法不限得到最后结果就行. 第四题和第五题是代码填空题,主要考察算法基本功和编程基本功. 第八题到 ...

  4. 题解动态规划:蓝桥杯2022国赛B组 题解 A题目

    在这组题(蓝桥杯C/C++ B组 国赛)里面挑了几道喜欢的题目,做了一下,笔记思路如下.(其实是我觉得能做出的题 ) 题目图片来源于:CSDN 罚时大师月色 A:2022 [题目大意] 请问2022, ...

  5. 蓝桥杯2017国赛 瓷砖样式 dfs+map

    标题:磁砖样式小明家的一面装饰墙原来是 3*10 的小方格.现在手头有一批刚好能盖住2个小方格的长方形瓷砖.瓷砖只有两种颜色:黄色和橙色.小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来.小 ...

  6. 蓝桥杯2017国赛 瓷砖样式 dfs+hush

    小明家的一面装饰墙原来是 3*10 的小方格. 现在手头有一批刚好能盖住2个小方格的长方形瓷砖. 瓷砖只有两种颜色:黄色和橙色. 小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来. 小明有个 ...

  7. 捉迷藏之二-第10届蓝桥杯Scratch国赛真题第6题程序2

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第15 ...

  8. 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第27讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...

  9. 魔法师盖城墙-第11届蓝桥杯Scratch国赛真题第4题

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第10 ...

最新文章

  1. js float 取精度
  2. php的cookie的函数,php setcookie()函数的使用简介
  3. 【CSS3】table的css属性
  4. VTK:将点转换为字形用法实战
  5. 一、iVX简介(IVX 快速开发教程)
  6. zookeeper理解
  7. Mysql数据库-面试题
  8. BZOJ1492: [NOI2007]货币兑换Cash(CDQ分治,斜率优化动态规划)
  9. 一个男生写的关于怎么追女生昨天没有说一个很关键的东西
  10. datagrid在MVC中的运用05-加入时间搜索条件,枚举填充下拉框
  11. html 字体样式及结果,css font-family 的种类、安全字体及写法(附样式图)
  12. 【小5聊】重装系统之台式电脑BIOSTAR映泰主板,启动U盘PE系统以及重装后无法启动情况
  13. 鸿鹄系统和鸿蒙系统区别,荣耀智慧屏正式发布 鸿蒙系统+鸿鹄818芯片 售价3799元起...
  14. 关于在IE8浏览器的环境下页面一直刷新的问题
  15. Spring Boot Admin在线查看spring boot后台日志
  16. 计算机网络 网际控制报文协议 ICMP
  17. 亿赛通文档安全云服务正式启动
  18. odoo之审批 流程管理 模块
  19. 微型计算机测控系统课程设计报告,《微机原理与接口技术》课程设计报告_精品.doc...
  20. 过来人谈《去360还是留在百度?》(转)

热门文章

  1. 任务42:EF Core Migration
  2. 如何保证linearlayout_怎么让LinearLayout占据父布局的所有剩余空间
  3. AWS Route53 简介 笔记
  4. nRF5340(入门篇)之1.4 浅谈双核系统
  5. 网络安全内外忧患,发现儿童平板电脑中含有漏洞,容易遭遇黑客.
  6. 盖茨连续12年福布斯富豪榜第1(附排名)
  7. 踏进Android王国
  8. 【算法题目】有n个台阶,青蛙一次只能跳1步到k步,请问有多少种跳法?
  9. Go技术日报(2021-07-27)——全网最全的Go书单来喽
  10. cpu使用率升高,排查思路。