快三竞猜网站建设,网站页脚的信息都有什么,教育网站制作公司,安徽 网站开发目录
第 1 题#xff1a;长草
题目描述
输入描述
输出描述
输入输出样例
运行限制
代码#xff1a;
思路#xff1a;
第 2 题#xff1a;蓝肽子序列_LCS_最长公共子序列dp问题
题目描述
输入描述
输出描述
输入输出样例
运行限制
代码#xff1a;
思路长草
题目描述
输入描述
输出描述
输入输出样例
运行限制
代码
思路
第 2 题蓝肽子序列_LCS_最长公共子序列dp问题
题目描述
输入描述
输出描述
输入输出样例
运行限制
代码
思路
第 3 题迷宫与陷阱
第 4 题送礼物 第 1 题长草 题目描述 小明有一块空地他将这块空地划分为 n 行 m 列的小块每行和每列的长度都为 1。 小明选了其中的一些小块空地种上了草其他小块仍然保持是空地。 这些草长得很快每个月草都会向外长出一些如果一个小块种了草则它将向自己的上、下、左、右四小块空地扩展 这四小块空地都将变为有草的小块。请告诉小明k 个月后空地上哪些地方有草。 输入描述 输入的第一行包含两个整数 n,m。 接下来 n 行每行包含 m 个字母表示初始的空地状态字母之间没有空格。如果为小数点表示为空地如果字母为 g表示种了草。 接下来包含一个整数 k。 其中2≤n,m≤10001≤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 insnew BufferedReader(new InputStreamReader(System.in));static StreamTokenizer innew StreamTokenizer(ins);static int[] Xnew int[]{0,0,-1,1};static int[] Ynew 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[] spins.readLine().split( );int nInteger.parseInt(sp[0]);int mInteger.parseInt(sp[1]);String[][]mapnew String[n][m];boolean[][] isTruenew boolean[n][m];Queueint[] queuenew 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 KInteger.parseInt(ins.readLine());
// in.nextToken();
// int K(int) in.nval;int i0;while (iK){i;int lengthqueue.size();for (int l 0; l length; l) {int[] nums queue.poll();int xnums[0];int ynums[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?spm1001.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 insnew BufferedReader(new InputStreamReader(System.in));static StreamTokenizer innew 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 s1ins.readLine();String s2ins.readLine();char[] arr1s1.toCharArray();char[] arr2s2.toCharArray();int length1s1.length();int length2s2.length();int temp10;int temp20;ArrayListStringlist1new ArrayList();ArrayListStringlist2new ArrayList();for (int i 1; i length1; i) {if(arr1[i]Aarr1[i]Z){list1.add(s1.substring(temp1,i));temp1i;//最后一个单词为大写的情况if(ilength1-1){list1.add(arr1[i]);}}else if(ilength1-1){list1.add(s1.substring(temp1,length1));}}for (int i 1; i length2; i) {if(arr2[i]Aarr2[i]Z){list2.add(s2.substring(temp2,i));temp2i;//最后一个单词为大写的情况if(ilength2-1){list2.add(arr2[i]);}}else if(ilength2-1){list2.add(s2.substring(temp2,length2));}}int size1list1.size();int size2list2.size();int[][] dpnew int[size11][size21];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.29DP最长公共子序列详细版本(LCS)【动态规划】最长公共子序列 I动态规划 最长公共子串 全网最详讲解教程https://www.bilibili.com/video/BV1S3411e7C8/?spm_id_from333.337.search-card.all.clickvd_sourceeb072ba6b610daa77b0adfe79fcc5879 第 3 题迷宫与陷阱
第 4 题送礼物