小明经常玩 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.Scanner;
//博弈问题
public class lq {public static void main(String[] args) {Scanner cin = new Scanner(System.in);int n = Integer.valueOf(cin.nextLine());while (n-- > 0) {System.out.println(dfs(cin.nextLine()));}}private static int dfs(String str) {if (str.contains("LOL")) {return -1;}if (!str.contains("*")) {return 0;}int ping = 0;char[] cs = str.toCharArray();for (int i = 0; i < cs.length; i++) {if (cs[i] == '*') {//前提这个位置没有被填cs[i] = 'L';//试着填入Lswitch (dfs(new String(cs))) {case -1:return 1;case 0:ping = 1;}//如果上面没有return 1 ,那么我们再尝试填入Ocs[i] = 'O';//试着填入Oswitch (dfs(new String(cs))) {case -1:return 1;case 0:ping = 1;}//既然这个位置既不能填L,也不能填O,那么说明这个位置不适合填,那么让i++,去尝试填下一个位置cs[i] = '*';//回溯,代表我没填}}//如果上面的递归函数结束了,没有return 1 ,那么说明我已经无法赢对手了,那么这是看能不能平手if (ping > 0) {return 0;}return -1;}
}

第八届蓝桥杯国赛Java b组 填字母游戏相关推荐

  1. 填词游戏java_第八届蓝桥杯国赛 Java B组 第五题 填字母游戏(博弈论)

    解题思路: 因为是博弈论,所以我们要对先手的必胜态和必败态分析. 1.首先我们看赢遇到的状态,就是给出的串的子串有LO*,*OL,L*L这三种情况(就叫福利局吧~).都可以直接填出LOL,获胜. 2. ...

  2. 第八届蓝桥杯国赛Java b组 第五题

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

  3. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

    2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...

  4. 2017第八届蓝桥杯省赛JAVA C组真题解析(带源码及解析)

    蓝桥杯历年真题及解析. 目录: 蓝桥杯历年真题及解析. A:外星日历(难度:★) 题目: 分析: 代码: B:兴趣小组(难度:★) 题目: 分析: 代码: C:纸牌三角形(难度:★★★) 题目: 分析 ...

  5. 2020第十一届蓝桥杯国赛JAVA B组真题解析(带源码及解析)

    蓝桥杯历年真题及解析. 目录 蓝桥杯历年真题及解析. A: 美丽的 2 题目: 分析: AC代码: B: 扩散 题目: 分析: AC代码: C: 阶乘约数 题目: 分析: AC代码: D: 本质上升序 ...

  6. 2016蓝桥杯国赛 JAVA C组第五题 路径之谜

    蓝桥杯确实很暴力... 路径之谜 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士 ...

  7. 第9届蓝桥杯 国赛 java C组

    9.第9届蓝桥杯 https://blog.csdn.net/qq_43449564/article/details/109333799 https://blog.csdn.net/weixin_44 ...

  8. 蓝桥杯国赛C++A组B组题解整理(第八、七、六、五、四届)

    [写在前面的话19.04.04] 今年省赛的结果出的意外得快,有很多小伙伴来和我分享他们进了省一的喜悦,并问我啥时候更新国赛题解,emmm--不是我不想更新,实在是抽不出时间,有缘再更--虽然不更新题 ...

  9. 49-2017年第八届蓝桥杯国赛试题及详解(Java本科B组)

    蓝桥杯历年真题题目及题解目录汇总(推荐) 蓝桥杯算法模板常用套路及API等个人总结 ---------------------------------------------------------- ...

  10. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑

    题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...

最新文章

  1. 利用脑机接口从鸟的脑电波中重现鸟唱歌声
  2. Python Django 一对多逆向查询示例
  3. keil debug如何在watch直接修改变量值_零基础学VBA:什么是VBA?如何编写和运行VBA代码?...
  4. MySql Workbench 安全模式(safe mode)
  5. Python笔记-函数装饰器
  6. (2015秋) 软工作业成绩公布
  7. KNN聚类的原理和实现
  8. 专科转行学java_IT技术学费昂贵,大专生转行学IT有必要去培训班吗
  9. webpack打包路径更改_webpack打包教程
  10. Kindle资源-史上最全60GB的Kindle电子书资源网盘打包下载
  11. win10下载安装office2016
  12. springBoot Admin整合nacos
  13. 2022电工(初级)考试题库模拟考试平台操作
  14. [前端基础] CSS3 篇
  15. python中datetime是什么意思_Python中time和datetime的区别
  16. ntoskrnl导致的蓝屏死机问题
  17. 2019计算机考研大纲考什么,2019计算机考研大纲有哪些变动
  18. 开拓者终变落荒者,火箭大胜进第二轮
  19. 农民丰收节交易会亮点-农业大健康·万祥军:谋定功能性农业
  20. iOS音频播放 (三):AudioFileStream

热门文章

  1. 企业消息转发服务器,Python构建企业微信自动消息转发服务端
  2. UEFIEDKII Introduction:UEFIEDKII概述[1]
  3. 单片机学习——看门狗
  4. Labwindows/CVI 编写CAN通讯的上位机
  5. matlab堆积式玫瑰图,[转帖]堆积式南丁格尔玫瑰图模板
  6. Win7如何显示文件扩展名
  7. java弹幕爬取,手把手教你爬取B站弹幕(超详细)!
  8. 如何解决Mac电脑没声音了的问题
  9. 微信投票系统平台大全
  10. 一文入门智能开关的3种功能形态