第十四届蓝桥杯三月真题刷题训练——第 23 天
目录
第 1 题:长草
题目描述
输入描述
输出描述
输入输出样例
运行限制
代码:
思路:
第 2 题:蓝肽子序列_LCS_最长公共子序列dp问题
题目描述
输入描述
输出描述
输入输出样例
运行限制
代码:
思路:
第 3 题:迷宫与陷阱
第 4 题:送礼物
第 1 题:长草
题目描述
小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。
小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。
这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,
这四小块空地都将变为有草的小块。请告诉小明,k 个月后空地上哪些地方有草。
输入描述
输入的第一行包含两个整数 n,m。
接下来 n 行,每行包含 m 个字母,表示初始的空地状态,字母之间没有空格。如果为小数点,表示为空地,如果字母为 g,表示种了草。
接下来包含一个整数 k。 其中,2≤n,m≤1000,1≤k≤1000。
输出描述
输出 n 行,每行包含 m 个字母,表示 k 个月后空地的状态。如果为小数点,表示为空地,如果字母为 g,表示长了草。
输入输出样例
示例
输入
4 5 .g... ..... ..g.. ..... 2
输出
gggg. gggg. ggggg .ggg.
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
代码:
package 第十四届蓝桥杯三月真题刷题训练.day23;import java.io.*;
import java.util.LinkedList;
import java.util.Queue;/*** @author yx* @date 2023-03-26 19:37*/
public class 长草__BFS {static PrintWriter out =new PrintWriter(System.out);static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));static StreamTokenizer in=new StreamTokenizer(ins);static int[] X=new int[]{0,0,-1,1};static int[] Y=new int[]{1,-1,0,0};/*** 输入* in.nextToken()* int a= (int)in.nval;** 输出* out.print();* out.flush();** 读文件:* BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\yx\\Desktop\\primes.txt")));* String s = br.readLine();s读取每一行数据* if (s == null)break;读取文件终止的语句**/public static void main(String[] args) throws IOException {String[] sp=ins.readLine().split(" ");int n=Integer.parseInt(sp[0]);int m=Integer.parseInt(sp[1]);String[][]map=new String[n][m];boolean[][] isTrue=new boolean[n][m];Queue<int[]> queue=new LinkedList<>();for (int i = 0; i < n; i++) {map[i]=ins.readLine().split("");for (int j = 0; j < m; j++) {if(map[i][j].equals("g")){
// System.out.println(i+" "+j);queue.offer(new int[]{i,j});isTrue[i][j]=true;}}}int K=Integer.parseInt(ins.readLine());
// in.nextToken();
// int K=(int) in.nval;int i=0;while (i<K){i++;int length=queue.size();for (int l = 0; l < length; l++) {int[] nums = queue.poll();int x=nums[0];int y=nums[1];for (int j = 0; j < 4; j++) {int newX = x + X[j];int newY = y + Y[j];if (newX < n && newY < m && newX >= 0 && newY >= 0 && !isTrue[newX][newY] && map[newX][newY].equals(".")) {map[newX][newY] = "g";
// System.out.println(newX + " " + newY);isTrue[newX][newY]=true;queue.offer(new int[]{newX, newY});}}}}/*这个地方out.flush放在最后不然输出会超时频繁的使用out.flush也会有开销*/
// for (int j = 0; j < n; j++) {
// for (int k = 0; k < m; k++) {
// out.print(map[j][k]);
// }
// out.println();
// }
// out.flush();for (int j = 0; j < n; j++) {for (int k = 0; k < m; k++) {System.out.print(map[j][k]);}System.out.println();}}
}
思路:
这题没啥好讲的,裸bfs板子,跟day19的灌溉一模一样
第十四届蓝桥杯三月真题刷题训练——第 19 天_小羊不会飞的博客-CSDN博客第 1 题:灌溉第 2 题:小朋友崇拜圈第 3 题:括号序列第 4 题:砍竹子 题解链接:砍竹子题解
https://blog.csdn.net/m0_55858611/article/details/129701723?spm=1001.2014.3001.5501
第 2 题:蓝肽子序列_LCS_最长公共子序列dp问题
题目描述
L 星球上的生物由蛋蓝质组成,每一种蛋蓝质由一类称为蓝肽的物资首尾连接成一条长链后折叠而成。
生物学家小乔正在研究 L 星球上的蛋蓝质。她拿到两个蛋蓝质的蓝肽序列,想通过这两条蓝肽序列的共同特点来分析两种蛋蓝质的相似性。
具体的,一个蓝肽可以使用 1 至 5 个英文字母表示,其中第一个字母大写,后面的字母小写。一个蛋蓝质的蓝肽序列可以用蓝肽的表示顺序拼接而成。
在一条蓝肽序列中,如果选取其中的一些位置,把这些位置的蓝肽取出,并按照它们在原序列中的位置摆放,则称为这条蓝肽的一个子序列。蓝肽的子序列不一定在原序列中是连续的,中间可能间隔着一些未被取出的蓝肽。
如果第一条蓝肽序列可以取出一个子序列与第二条蓝肽序列中取出的某个子序列相等,则称为一个公共蓝肽子序列。
给定两条蓝肽序列,找出他们最长的那个公共蓝肽子序列的长度。
输入描述
输入两行,每行包含一个字符串,表示一个蓝肽序列。字符串中间没有空格等分隔字符。
其中有 ,两个字符串的长度均不超过 1000。
输出描述
输出一个整数,表示最长的那个公共蓝肽子序列的长度。
输入输出样例
示例
输入
LanQiaoBei LanTaiXiaoQiao
输出
2
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
代码:
package 第十四届蓝桥杯三月真题刷题训练.day23;import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;/*** @author yx* @date 2023-03-26 20:31*/
public class 蓝肽子序列 {static PrintWriter out =new PrintWriter(System.out);static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));static StreamTokenizer in=new StreamTokenizer(ins);/*** 输入* in.nextToken()* int a= (int)in.nval;** 输出* out.print();* out.flush();** 读文件:* BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\yx\\Desktop\\primes.txt")));* String s = br.readLine();s读取每一行数据* if (s == null)break;读取文件终止的语句**/public static void main(String[] args) throws IOException {String s1=ins.readLine();String s2=ins.readLine();char[] arr1=s1.toCharArray();char[] arr2=s2.toCharArray();int length1=s1.length();int length2=s2.length();int temp1=0;int temp2=0;ArrayList<String>list1=new ArrayList<>();ArrayList<String>list2=new ArrayList<>();for (int i = 1; i < length1; i++) {if(arr1[i]>='A'&&arr1[i]<='Z'){list1.add(s1.substring(temp1,i));temp1=i;//最后一个单词为大写的情况if(i==length1-1){list1.add(arr1[i]+"");}}else if(i==length1-1){list1.add(s1.substring(temp1,length1));}}for (int i = 1; i < length2; i++) {if(arr2[i]>='A'&&arr2[i]<='Z'){list2.add(s2.substring(temp2,i));temp2=i;//最后一个单词为大写的情况if(i==length2-1){list2.add(arr2[i]+"");}}else if(i==length2-1){list2.add(s2.substring(temp2,length2));}}int size1=list1.size();int size2=list2.size();int[][] dp=new int[size1+1][size2+1];for (int i = 0; i <size1 ; i++) {System.out.print(list1.get(i)+" ");}for (int j = 0; j < size2; j++) {System.out.print(list2.get(j)+" ");}for (int i = 1; i <= size1 ; i++) {for (int j = 1; j <= size2 ; j++) {if(list1.get(i-1).equals(list2.get(j-1))){dp[i][j]=dp[i-1][j-1]+1;}else {dp[i][j]=Math.max(dp[i][j-1],dp[i-1][j]);}}}out.println(dp[size1][size2]);out.flush();}
}
思路:
这道题目考察两个点:
(1)字符串切割(存储每个以大写字母为开头的单词)
(2)最长公共子序列问题(LCS)
- 最长公共子序列我们需要分别遍历字符串S1和字符串S2
- 遍历比较的时候只会出现两种情况:字符串相等或字符串不等
- 对应这两种状态分别给出两种dp状态转移方程:
- 相等:dp[i][j]=dp[i-1][j-1]+1
- 不相等:dp[i][j]=max(dp[i-1][j],dp[i][j-1])
- dp[i][j]的表示含义:字符串S1的前i个字符和字符串S2的前j个字符可以构成最长公共子序列为:dp[i][j]
关于最长公共子序列,leetcode有类似的题目:
力扣
https://leetcode.cn/problems/longest-common-subsequence/一个LCS讲的非常不错的B站视频:
包教包会~最长公共子序列_哔哩哔哩_bilibili-, 视频播放量 16998、弹幕量 66、点赞数 638、投硬币枚数 491、收藏人数 506、转发人数 150, 视频作者 81895507389_bili, 作者简介 ,相关视频:[轻松掌握动态规划]5.最长公共子序列 LCS,最长公共子序列,LCS, 一看就头疼,它真的有这么难懂吗?,06序列类dp-多序列问题-最长公共子序列,最长公共子序列 - 动态规划 Longest Common Subsequence - Dynamic Programming,最长公共子序列与最长公共子串问题,LeetCode1940题排序数组之间的最长公共子序列,LeetCode1143-最长公共子序列-代码随想录11.29,DP最长公共子序列详细版本(LCS),【动态规划】最长公共子序列 I,动态规划 最长公共子串 全网最详讲解教程
https://www.bilibili.com/video/BV1S3411e7C8/?spm_id_from=333.337.search-card.all.click&vd_source=eb072ba6b610daa77b0adfe79fcc5879
第 3 题:迷宫与陷阱
第 4 题:送礼物
相关文章:

第十四届蓝桥杯三月真题刷题训练——第 23 天
目录 第 1 题:长草 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 思路: 第 2 题:蓝肽子序列_LCS_最长公共子序列dp问题 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 思路&am…...

基于springboot实现医院信息管理系统【源码+论文】
基于springboot实现医院信管系统演示开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包…...
CODESYS增量式PID功能块(ST完整源代码)
增量式PID的详细算法公式和博途源代码,请参看下面的文章链接: 博途1200/1500PLC增量式PID算法(详细SCL代码)_博图scl语言pid增量编码器_RXXW_Dor的博客-CSDN博客SMART200PLC增量式PID可以参看下面这篇博文,文章里有完整的增量式PID算法公式,这里不在赘述西门子SMARTPLC增量…...

代码质量提升,代码扫描 review 之 Codacy 工具使用
目录一、什么是Codacy二、GitHub 上使用 Codacy三、Codacy上导入GitHub项目一、什么是Codacy Codacy 是用于代码 review 检测(即代码审查)的工具,目前支持对40多种编程语言检测,如 c、c、c#、java 、python、javascript 等。 Codacy 可用于 GitHub 和 …...

Centos Linux 正确安装 Redis 的方式
官方文档 Getting started with Redis | Redis 第一步 、下载源代码 源代码的下载方式有很多种,可以去源代码仓库下载,或者使用下面的命令下载 wget https://download.redis.io/redis-stable.tar.gz 第二步 、编译代码 tar -xzvf redis-stable.tar.…...

C++Primer第五版【阅读笔记】
CPrimer第五版 阅读笔记 第1章开始1.1 编写一个简单的C程序1.1.1 编译、运行程序1.2 初识输入输出第1章开始 学习一门新的程序设计语言的最好方法就是练习编写程序。 1.1 编写一个简单的C程序 每个C程序都包含一个或多个函数,其中一个必须命名为 main,…...

ERD Online 4.0.11 在线数据库建模、元数据协作平台(免费、私有部署)
ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能,辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 4.0.11 ❝ :memo: fix(erd):…...

3.数组算法、动态规划
文章目录数组算法1.数组表示2.基本操作3.插入操作算法实例1实例2输出3.删除操作算法实例1输出4.搜索操作算法实例2输出5.更新操作算法实3例输出2.动态规划对照实例1数组算法 Array是一个容器,可以容纳固定数量的项目,这些项目应该是相同的类型。大多数数…...

项目管理工具哪个好?最新排名
项目管理工具当下已经成为项目团队的重要榜首,一款合适好用的项目管理工具可以帮助处理很多机械化工作,将管理者更多精力投入到更有价值的工作中,还可以帮助团队组织和计划项目,跟踪进度,处理预算和协作。该如何挑选帮…...

650. 只有两个键的键盘——【Leetcode每日一题】
650. 只有两个键的键盘 最初记事本上只有一个字符 A 。你每次可以对这个记事本进行两种操作: Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴)…...

【平常心无焦虑探讨】未来谁将被淘汰—在日常网络安全工作中使用GPT的感受
作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,在于他所拥有的。所以可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。…...

【C语言】深度理解指针(下)
一. 前言💎昨晚整理博客时突然发现指针还少了一篇没写,今天就顺便来补一补。上回书说到,emmm忘记了,没事,我们直接进入本期的内容:本期我们带来了几道指针相关笔试题的解析,还算是相对比较轻松的。话不多说…...

【树与二叉树】树与二叉树的概念及结构--详解介绍
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1.树概念及结构1.1 树…...

Spring Boot集成RocketMQ实现普通、延时、事务消息发送接收、PULL消费模式及开启ACL | Spring Cloud 30
一、前言 在前面我们通过以下章节对RocketMQ有了基础的了解: docker-compose 搭建RocketMQ 5.1.0 集群(双主双从模式) | Spring Cloud 28 docker-compose 搭建RocketMQ 5.1.0 集群开启ACL权限控制 | Spring Cloud 29 现在开始我们正式学习…...

人人都能看懂的Spring源码解析,Spring如何解决循环依赖
人人都能看懂的Spring源码解析,Spring如何解决循环依赖原理解析什么是循环依赖循环依赖会有什么问题?如何解决循环依赖问题的根本原因如何解决为什么需要三级缓存?Spring的三级缓存源码走读Spring的三级缓存提前暴露getSingleton方法总结往期…...

Linux上搭建Discuz论坛
一.准备工作 1.下载php*,mariadb-server 2.上传Discuz3.5压缩包并解压 二.搭建过程 基于redhat 9 版本和Discuz3.5,php8.0,mariadb10.5演示 一.准备工作 1.下载php*,mariadb-server [rootredhat9 aaa]# yum install -y php*…...

【蓝桥杯专题】 树状数组(C++ | 洛谷 | acwing | 蓝桥)
菜狗现在才开始备战蓝桥杯QAQ 文章目录【蓝桥杯专题】 (C | 洛谷 | acwing | 蓝桥)什么是线段数组??1264. 动态求连续区间和数星星线段树AcWing 1270. 数列区间最大值PPPPPPP【蓝桥杯专题】 (C | 洛谷 | acwing | 蓝桥) 什么是…...

QCefView编译配置(Windows-MSVC)(11)
QCefView编译配置(Windows-MSVC) 文章目录QCefView编译配置(Windows-MSVC)1、概述2、准备工作3、添加环境变量4、更换cef源码版本5、CMake构建6、Visual Studio编译7、安装编译后的文件8、验证编译结果更多精彩内容👉个…...

Token原理
Q:分布式场景下如何生成token以及使用token的流程: 在分布式场景下,可以采用以下方式生成 token 和进行权限认证: 1. 生成 token: 使用JWT(JSON Web Token)生成 token。JWT 是一种基于 JSON …...

③【Java组】蓝桥杯省赛真题 持续更新中...
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中...一、错误票据题目描…...

linux实验之shell编程基础
这世间,青山灼灼,星光杳杳,秋风渐渐,晚风慢慢 shell编程基础熟悉shell编程的有关机制,如标准流。学习Linux环境变量设置文件及其内容/etc/profile/etc/bashrc/etc/environment~/.profile~/.bashrc熟悉编程有关基础命令…...

C语言小程序:通讯录(静态版)
哈喽各位老铁们,今天给大家带来一期通讯录的静态版本的实现,何为静态版本后面会做解释,话不多说,直接开始!关于通讯录,其实也就是类似于我们手机上的通讯录一样,有着各种各样的功能,…...

写CSDN博客两年半的收获--总结篇
👨💻作者简介:练习时长两年半的java博主 🎟️个人主页:君临๑ ps:点赞是免费的,却可以让写博客的作者开心好几天😎 不知不觉间,在csdn写博客也有两年半的时间了&#x…...

中科亿海微FPGA应用(一、点灯)
1.软件: https://download.csdn.net/download/weixin_41784968/87564071 需要申请license才能使用:软件试用申请_软件试用申请_中科亿海微电子科技(苏州)有限公司 2.开发板: 芯片EQ6HL45,42.5k LUT。 3…...

ElasticSearch - SpringBoot整合ES:实现搜索结果排序 sort
文章目录00. 数据准备01. Elasticsearch 默认的排序方式是什么?02. Elasticsearch 支持哪些排序方式?03. ElasticSearch 如何指定排序方式?04. ElasticSearch 如何按照相关性排序?05. ElasticSearch 查询结果如何不按照相关性排序…...

IDEA的全新UI可以在配置里启用了,快来试试吧!
刚看到IDEA官方昨天发了这样一条推:IDEA的新UI可以在2022.3版本上直接使用了!开启方法如下:打开IDEA的Setting界面,在Appearance & Behavior下有个被标注为Beta标签的New UI菜单,具体如下图:勾选Enable…...

第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移
文章目录第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移备份处于活动状态时自动进行故障转移备份不活动时的自动故障转移对各种中断场景的镜像响应响应主要中断场景的自动故障转移第九章 镜像架构和规划 - 备份处于活动状态时自动进行故障转移 备份处于活动状态…...

Barra模型因子的构建及应用系列七之Liquidity因子
一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子、NonLinear Size因子和Book-to-Price因子,并分别创建了对应的单因子策略,其中Size因子和NonLinear Siz因子具有很强的收益能力…...

走进二叉树的世界 ———性质讲解
二叉树的性质和证明前言1.二叉树的概念和结构特殊的二叉树:二叉树的性质前言 本篇博客主要讲述的是有关二叉树的一些概念,性质以及部分性质的相关证明,如果大伙发现了啥错误,可以在评论区指出😘😘 1.二叉树…...

【SSM】Spring + SpringMVC +MyBatis 框架整合
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ SSM框架整合一、导入相关依赖二、配置web.xml文…...