标题:填字母游戏

小明经常玩 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. java 实例化 bean,Spring(02)——bean实例化
  2. mysql 存储过程 模糊查询_Mysql之存储过程“模糊查询drop表”
  3. 爬虫系统Lucene分词
  4. 1.0jpa 2.0_在JPA 2.1中使用@Convert正确完成映射枚举
  5. 12v小型电机型号大全_鄂破碎机型号大全图,小型鄂破碎机价格
  6. 苹果秋季发布会于9月16日召开;华为搜索业务将在国内亮相;Android 11正式版发布 | 极客头条
  7. DIY购车入门5步法则
  8. 打造IE6的position:fixed整理篇
  9. 关于计算机的幻想作文600字,科学幻想作文600字
  10. python电影推荐系统 github_GitHub - qingtang3009/MovieRecommend: 一个电影推荐系统
  11. matlab 频域采样定理,信号时域和频域采样函数周期性与原信号的关系
  12. android抠图软件,手机抠图软件
  13. 必先利其器之 IDEA 磨刀好杀猪
  14. 【PyTorch】切记:GeForce RTX 3090 显卡仅支持 CUDA 11 以上的版本!
  15. 【Python爬虫练习】虎扑社区步行街版块首页信息爬取(BeautifulSoup+MongoDB)
  16. opencv:对`cv :: DescriptorMatcher‘的未定义引用
  17. 水仙花数(输出全部水仙花数)
  18. 编辑审稿时不会从头看到尾!所以论文应该这样写……
  19. python编程设计大学ppt_上海交通大学-python程序设计课程PPT-Ch7-(1)...ppt
  20. 北大青鸟深圳嘉华学校分享Hibernate查询

热门文章

  1. Arcgis engine 10.2 面积分割 比例分割 等份分割
  2. 解决vue中拿不到第一次数据,只能从第二次拿的情况
  3. TweenMax+SVG礼物盒购物动画
  4. 职场人必读的文字--只花10分钟影响你一辈子!
  5. Halcon学习笔记之模板匹配-基于形状的多模板匹配
  6. 二维数组a的数组名a,a[0],a,a[0]的联系,和指针的关系
  7. 视频播放器选择怎样的丢帧策略~~
  8. 在 4G 内存的机器上,申请 8G 内存会怎么样?
  9. 如何理解什么是keep-alive?
  10. 计算机网络码分多址CDMA