小明经常玩 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. struts2漏洞_十大常见web漏洞——命令执行漏洞
  2. Linux目录结构FHS
  3. 移动支付漏洞大 没密码也能买买买
  4. 【数据分析】八种缺失值处理方法总有一种适合你
  5. Codeforces 140D - New Year Contest
  6. window tool
  7. uva 1557 - Calendar Game(博弈)
  8. 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)
  9. mysql 重启_mysql重启的问题
  10. CVPR 2019 Oral | 京东目标检测算法ScratchDet的深入思考
  11. 如何提高lstm的预测精度_直线电机点胶机如何提高点胶精度及生产效率?
  12. java aes javascript_Java已有AES加解密,现需要前端Javascript加密调接口,返回的数据需要解密,目前互通不了,找不到原因...
  13. 【OpenCV CUDA】OpenCV和Cuda结合编程
  14. iOS开发拓展篇—UIDynamic(捕捉行为)
  15. 在局域网中用联通的3G无线上网卡后的静态路由的命令行
  16. 自己设计个动态屏保吧
  17. aspen如何确定塔板数_Aspen Plus入门教程(3)-简捷法计算理论板数
  18. php获取谷歌邮箱,php 获取gmail 联系人邮箱,应用oauth2.0验证
  19. 打不开磁盘“E:\CentOS 64 位.vmdk”
  20. static变量的生存期问题

热门文章

  1. 苹果cmsv10怎么添加常见的几种广告代码
  2. 01、UART串口通信
  3. hadoop 常用命令
  4. python list 迭代_python迭代、列表生成式
  5. 【服务器数据恢复】服务器raid5磁盘阵列分区丢失的数据恢复案例
  6. 解决MacOS系统字体不识别STXingkai问题
  7. microhard p900数传配置方法
  8. android 程序控制开关飞行模式,android开关飞行模式的方法
  9. ps计算机二级自学教程,计算机二级考试《Photoshop图像处理与制作》
  10. TSO/GSO/LRO/GRO