标题:填字母游戏

小明经常玩 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填字母游戏;importjava.util.HashMap;importjava.util.Map;importjava.util.Scanner;public classMain {//nextInt()后有nextLine()一定要在nextInt()之后紧接着多加一个nextLine()

static Mapcache;//static

static char[] chess = {'L','O'};public static voidmain(String[] args) {

Scanner sc= newScanner(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->tie

int tag = -1;//System.out.println(String.valueOf(arg));

String s =String.valueOf(arg);if(cache.containsKey(s))returncache.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;

}

}returntag;

}

}

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

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

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

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

  2. 蓝桥杯第十三届国赛PythonB组题解

    蓝桥杯第十三届国赛PythonB组题解 [写在前边] 这次的题还是比较难的,只做出来7道,交上去6道,还有一半是暴力做的

  3. 蓝桥杯2020年国赛-JavaB组赛题解析(填空题)

    赛题目录 A.美丽的2(签到) 1.原试题 2.简要分析 3.实现代码 4.答案 B.扩散(多源BFS) 1.原试题 2.简要分析 3.实现代码 4.答案 C.阶乘约数(数论) 1.原试题 2.简要分 ...

  4. 第十届蓝桥杯c语言b组试题,2019年第十届蓝桥杯(决赛)国赛B组C++(B)

    题目: 2019可以被分解成若干个两两不同的素数,请问不同的分解方案有多少种? 注意:分解方案不考虑顺序,如2+2017=2019和2017+2=2019属于同一种方案. 思路先求出2019内的所有素 ...

  5. 蓝桥杯第七届省赛JavaB组题解

    第一题 /** 煤球数目有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共 ...

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

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

  7. 2019年第十一届蓝桥杯国赛JavaB组第H题——“大胖子走迷宫”题目及解析

    测试样例 Input: 9 5 +++++++++ +++++++++ +++++++++ +++++++++ +++++++++ ***+***** +++++++++ +++++++++ ++++ ...

  8. 第九届蓝桥杯大赛软件类国赛

    文章目录 第九届蓝桥杯大赛软件类国赛 国赛C++ A组 三角形面积 阅兵方阵 找假币 约瑟夫环 -- important 自描述序列 -- todo 采油 -- todo 国赛C++ B组 换零钞 激 ...

  9. java dfs算法蓝桥杯题_【蓝桥杯省赛JavaB组真题详解】四平方和(2016)_疼疼蛇的博客-CSDN博客...

    原文作者:疼疼蛇 原文标题:[蓝桥杯省赛JavaB组真题详解]四平方和(2016) 发布时间:2021-02-26 15:00:01 题目描述 四平方和 四平方和定理,又称为拉格朗日定理: 每个正整数 ...

最新文章

  1. Queue.LinkedList
  2. ajax技术运用案例,第12篇:Ajax技术与项目案例
  3. 第一章 编程基础知识
  4. VTK:几何对象之PolyLine
  5. Docker使用中遇到的问题
  6. php chr 乱码,php chr() ord()中文截取乱码问题解决方法_PHP教程
  7. js怎么把按钮往下移_Vue.js 实现计算器
  8. SendMessage wMsg常量值参考
  9. ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案
  10. phpcms图片无法上传
  11. 阿里十大最受开发者欢迎的工具!
  12. java 从服务器下载文件并保存到本地
  13. 八字 十二长生 详解
  14. Kylin Linux V10升级gcc操作
  15. 51单片机入门之点亮发光二极管
  16. 路由器与交换机工作过程详解!!!
  17. 自定义邮箱和手机号码的校验规则
  18. [QT]clicked(bool)与toggled(bool)区别
  19. 龙,中国,不是dragon
  20. NPDP产品经理小知识:知识产权管理

热门文章

  1. 最热门的十种编程语言,总有一种适合你
  2. 26岁那年,我创业了
  3. 独立版旺店助手源码在线持续更新
  4. postman进行批量测试的步骤
  5. idea修改css,js样式浏览器没更新问题
  6. 浪潮信息助力医院智慧医疗建设走得既稳又快
  7. python云计算1
  8. Hbase slides
  9. 嘉靖王朝最大的一出闹剧和惨剧——大礼仪之争
  10. 输入远程计算机地址后,不提示输入用户名密码直接进入计算机怎么回事,解决Windows远程桌面连接每次都提示输入密码的问题...