蓝桥杯(Java) -day03

2023-11-05

1.蓝桥杯(Java) -day01

2.蓝桥杯(Java) -day02


一、滑行

蓝桥杯-2023省赛模拟题-滑行
问题描述
小蓝准备在一个空旷的场地里面滑行,这个场地的高度不一,小蓝用一个 n 行 m 列的矩阵来表示场地,矩阵中的数值表示场地的高度。

如果小蓝在某个位置,而他上、下、左、右中有一个位置的高度(严格)低于当前的高度,小蓝就可以滑过去,滑动距离为 1 。

如果小蓝在某个位置,而他上、下、左、右中所有位置的高度都大于等于当前的高度,小蓝的滑行就结束了。

小蓝不能滑出矩阵所表示的场地。

小蓝可以任意选择一个位置开始滑行,请问小蓝最多能滑行多远距离。

输入格式
输入第一行包含两个整数 n, m,用一个空格分隔。

接下来 n 行,每行包含 m 个整数,相邻整数之间用一个空格分隔,依次表示每个位置的高度。

输出格式
输出一行包含一个整数,表示答案。

样例输入

4 5
1 4 6 3 1 
11 8 7 3 1 
9 4 5 2 1 
1 3 2 2 1

样例输出

7

样例说明
滑行的位置一次为 (2, 1), (2, 2), (2, 3), (3, 3), (3, 2), (4, 2), (4, 3)(2,1),(2,2),(2,3),(3,3),(3,2),(4,2),(4,3)。

评测用例规模与约定
对于 30% 评测用例,1 <= n <= 20,1 <= m <= 20,0 <= 高度 <= 100。

对于所有评测用例,1 <= n <= 100,1 <= m <= 100,0 <= 高度 <= 10000。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

解题思路

dp问题 比较简单,看注释

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
 static int a[][];
    static int n, m;
    static boolean[][] visted;
    static int[][] dfs;
    static int[] dx = { -1, 1, 0, 0 };
    static int[] dy = { 0, 0, -1, 1 };

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();// 行
        m = sc.nextInt();// 列
        a = new int[n][m];
        dfs = new int[n][m];
        visted = new boolean[n][m];
        for (int i = 0; i < n; i++) { // 输入
            for (int j = 0; j < m; j++) {
                a[i][j] = sc.nextInt();
            }
        }

        int count = 0;
        //
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                count = Math.max(count, dfs(i, j));
            }
        }
        System.out.println(count);
    }

    private static int dfs(int x, int y) {
        // TODO Auto-generated method stub

        if (visted[x][y] == true) {

            return dfs[x][y];
        }
        visted[x][y] = true;
        dfs[x][y] = 1;

        for (int i = 0; i < 4; i++) {
            int nx = x + dx[i];
            int ny = y + dy[i];
            if (nx < 0 || nx >= n || ny < 0 || ny >= m || a[nx][ny] >= a[x][y]) {
                continue; // 越界了或者值不满足
            }
            dfs[x][y] = Math.max(dfs[x][y], dfs(nx, ny) + 1);// 更新,返回当前位置的最长路径长度
        }

        return dfs[x][y];
    }

}

二、滑行

蓝桥杯-2023省赛模拟题-星期几
问题描述
给定一天是一周中的哪天,请问 n 天后是一周中的哪天?

输入格式
输入第一行包含一个整数 w,表示给定的天是一周中的哪天,w 为 1 到 6 分别表示周一到周六,w 为 7 表示周日。

第二行包含一个整数 n。

输出格式
输出一行包含一个整数,表示 n 天后是一周中的哪天,1 到 6 分别表示周一到周六,7 表示周日。

样例输入

6
10

样例输出

2

评测用例规模与约定
对于所有评测用例,1 \leq n \leq 10000001≤n≤1000000。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

解题代码

import java.util.Scanner;

public class Main {
   public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int date=sc.nextInt();
        int add=sc.nextInt();
        int next=((date+add)%7==0)?7:(date+add)%7;
        System.out.println(next);
    }
}

三、清理水域

蓝桥杯-2023省赛模拟题-清理水域

问题描述
小蓝有一个 n \times mn×m 大小的矩形水域,小蓝将这个水域划分为 nn 行 mm 列,行数从 11 到 nn 标号,列数从 11 到 mm 标号。每行和每列的宽度都是单位 11 。

现在,这个水域长满了水草,小蓝要清理水草。

每次,小蓝可以清理一块矩形的区域,从第 r1r1 行(含)到第 r2r2 行(含)的第 c1c1 列(含)到 c2c2 列(含)。

经过一段时间清理后,请问还有多少地方没有被清理过。

输入格式
输入第一行包含两个整数 n, mn,m,用一个空格分隔

第二行包含一个整数 tt ,表示清理的次数。

接下来 tt 行,每行四个整数 r1, c1, r2, c2r1,c1,r2,c2,相邻整数之间用一个空格分隔,表示一次清理。请注意输入的顺序。

输出格式
输出一行包含一个整数,表示没有被清理过的面积。

样例输入

2 3
2
1 1 1 3
1 2 2 2

样例输出

30 20
2
5 5 10 15
6 7 15 9

样例输出


519

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

解题代码

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
   public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] glass = new int[n][m];
        int t = sc.nextInt();// 次数
        while (t-- > 0) {
            int r1 = sc.nextInt()-1;
            int c1 = sc.nextInt()-1;
            int r2 = sc.nextInt()-1;
            int c2 = sc.nextInt()-1;
            for (int i = r1 ; i <=r2; i++) {
                for (int j = c1 ; j <=c2; j++) {
                    if (glass[i][j] == 1) {
                        continue;
                    } else {
                        glass[i][j] = 1;}
                }
            }

        }
        int count = 0;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (glass[i][j] == 0) {
                    count++;
                }
            }
        }
        System.out.println(count);
    }
}

四、附近最小

蓝桥杯-2023省赛模拟题-附近最小

这个题本人超时了,样例跑通了8/10
但是相对来说更加容易理解,可以用于参考
在这里插入图片描述

问题描述
小蓝有一个序列 a[1], a[2], …, a[n]a[1],a[2],…,a[n]。

给定一个正整数 kk,请问对于每一个 11 到 nn 之间的序号 ii,a[i-k], a[i-k+1], …, a[i+k]a[i−k],a[i−k+1],…,a[i+k] 这 2k+12k+1 个数中的最小值是多少?

当某个下标超过 11 到 nn 的范围时,数不存在,求最小值时只取存在的那些值。

输入格式
输入的第一行包含一整数 nn。

第二行包含 nn 个整数,分别表示 a[1], a[2], …, a[n]a[1],a[2],…,a[n]。

第三行包含一个整数 kk 。

输出格式
输出一行,包含 nn 个整数,分别表示对于每个序号求得的最小值。

样例输入

5 
5 2 7 4 3 
1 

样例输出

2 2 2 3 3 

解题代码

import java.util.Scanner;
import java.util.Arrays;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
  static long[] dp;
    static int n;
    static long[] m;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = new long[n];
        for (int i = 0; i < n; i++) {
            m[i] = sc.nextInt();
        }
        int k = sc.nextInt();
        dp = new long[n];
        Arrays.fill(dp, Integer.MAX_VALUE);
        for (int i = 0; i < n; i++) {
            dp[i] = Math.min(dp[i], dfs(k, i));

        }
        for (int i = 0; i < n; i++) {
            System.out.print(dp[i] + " ");
        }
        sc.close();
    }

    static int t;

    private static long dfs(int k, int i) {
        // TODO Auto-generated method stub
        long min = Integer.MAX_VALUE;
        t = -k;
        while (i + t <= i + k) {

            if (i + t < 0 || i + t >= n) {
                t++;
                continue;
            } else {
                min = Math.min(min, m[i + t]);
                t++;
            }
        }
        return min;
    }
}

五、最大连通

蓝桥杯-2023省赛模拟题-最大连通

很尴尬这个题,超内存了,但因为是填空题,所以影响不大
问题描述
小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1 。


110010000011111110101001001001101010111011011011101001111110

010000000001010001101100000010010110001111100010101100011110 

001011101000100011111111111010000010010101010111001000010100 

101100001101011101101011011001000110111111010000000110110000 

010101100100010000111000100111100110001110111101010011001011 

010011011010011110111101111001001001010111110001101000100011 

101001011000110100001101011000000110110110100100110111101011 

101111000000101000111001100010110000100110001001000101011001 

001110111010001011110000001111100001010101001110011010101110 

001010101000110001011111001010111111100110000011011111101010 

011111100011001110100101001011110011000101011000100111001011 

011010001101011110011011111010111110010100101000110111010110 

001110000111100100101110001011101010001100010111110111011011 

111100001000001100010110101100111001001111100100110000001101 

001110010000000111011110000011000010101000111000000110101101 

100100011101011111001101001010011111110010111101000010000111 

110010100110101100001101111101010011000110101100000110001010 

110101101100001110000100010001001010100010110100100001000011 

100100000100001101010101001101000101101000000101111110001010 

101101011010101000111110110000110100000010011111111100110010 

101111000100000100011000010001011111001010010001010110001010 

001010001110101010000100010011101001010101101101010111100101 

001111110000101100010111111100000100101010000001011101100001 

101011110010000010010110000100001010011111100011011000110010 

011110010100011101100101111101000001011100001011010001110011 

000101000101000010010010110111000010101111001101100110011100 

100011100110011111000110011001111100001110110111001001000111 

111011000110001000110111011001011110010010010110101000011111 

011110011110110110011011001011010000100100101010110000010011 

010011110011100101010101111010001001001111101111101110011101

如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置,则称两个位置连通。与某一个标为 1 的位置连通的所有位置(包括自己)组成一个连通分块。

请问矩阵中最大的连通分块有多大?

答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

运行限制
最大运行时间:1s
最大运行内存: 256M

解题思路

这个题是dp变形问题,需要把各条支路上的数加上

解题代码

import java.util.Scanner;

public class Main {
    static int[][] dp = new int[30][61];
    static char[][] a = new char[30][61];
    static int[] dx = { -1, 1, 0, 0 };
    static int[] dy = { 0, 0, -1, 1 };

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 30; i++) {
            a[i] = sc.next().toCharArray();
        }
        int count = 0;
        for (int i = 0; i < 30; i++) {
            for (int j = 0; j < 60; j++) {
                if (a[i][j] == '1') {
                    count = Math.max(count, dfs(i, j));
                }
            }
        }
        System.out.println(count);

    }

    private static int dfs(int x, int y) {
        // TODO Auto-generated method stub

        
        if (x < 0 || x >= 30 || y < 0 || y >= 60 || a[x][y] != '1') {
            return 0;
        }
        a[x][y] = '2';
        int count = 1;
        count += dfs(x + 1, y) + dfs(x - 1, y) + dfs(x, y + 1) + dfs(x, y - 1);
        return count;
    }
}

列名

蓝桥杯-2023省赛模拟题-列名

问题描述
在 Excel 中,列的名称使用英文字母的组合。前 2626 列用一个字母,依次为 AA 到 ZZ,接下来 26\times 2626×26 列使用两个字母的组合,依次为 AAAA 到 ZZZZ。

请问第 20222022 列的名称是什么?

答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个由大写字母组成的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

填空题哦,应该手算也能算出来

解题代码

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
       int num=2022;
        String s="";
        while(num>0) {
            s=(char)(num%26-1+'A')+s;
            num/=26;
        }
        System.out.println(s);
    }
    

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯(Java) -day03 的相关文章

  • 如何将 javax.persistence.Column 定义为 Unsigned TINYINT?

    我正在基于 MySQL 数据库中的现有表创建 Java 持久性实体 Bean 使用 NetBeans IDE 8 0 1 我在这个表中遇到了一个字段 其类型为 无符号 TINYINT 3 我发现可以执行以下操作将列的类型定义为 unsign
  • JVisualVM/JConsole 中的 System.gc() 与 GC 按钮

    我目前正在测试处理 XML 模式的概念验证原型 并围绕一个非常消耗内存的树自动机外部库 我已经获得了源代码 构建 我想绘制 真实峰值 堆 随着模式大小的增加 不同运行的内存消耗 使用的指标符合我的目的并且不会影响问题 或者至少是它的合理近似
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • org.hibernate.QueryException:无法解析属性:文件名

    我正在使用休眠Criteria从列中获取值filename在我的桌子上contaque recording log 但是当我得到结果时 它抛出异常 org hibernate QueryException 无法解析属性 文件名 com co
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • Kotlin 未解决的参考:CLI 上 gradle 的 println

    放一个printlnkotlin 函数返回之前的语句会崩溃 堆栈跟踪 thufir dur NetBeansProjects kotlin thufir dur NetBeansProjects kotlin gradle clean bu
  • 来自十六进制代码的 Apache POI XSSFColor

    我想将单元格的前景色设置为十六进制代码中的给定颜色 例如 当我尝试将其设置为红色时 style setFillForegroundColor new XSSFColor Color decode FF0000 getIndexed 无论我在
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • Freemarker 和 Struts 2,有时它计算为序列+扩展哈希

    首先我要说的是 使用 Struts2 Freemarker 真是太棒了 然而有些事情让我发疯 因为我不明白为什么会发生这种情况 我在这里问是因为也许其他人有一个想法可以分享 我有一个动作 有一个属性 说 private String myT
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • 如何在 Java 中创建接受多个值的单个注释

    我有一个名为 Retention RetentionPolicy SOURCE Target ElementType METHOD public interface JIRA The Key Bug number JIRA referenc
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • Spring-ws:如何从没有“Request”元素的 xsd 创建 Wsdl

    尝试为客户端实现 SOAP Web 服务 我需要一个 wsdl 文件来通过soapUI 测试该服务 但正如您在下面看到的 这个 xsd 没有 Request 和 Response 方法 所有请求和响应都被定义为基本 ServiceProvi
  • Android:无法发送http post

    我一直在绞尽脑汁试图弄清楚如何在 Android 中发送 post 方法 这就是我的代码的样子 public class HomeActivity extends Activity implements OnClickListener pr
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 【2022】小米秋招前端笔试(卷1+卷2单选题)

    文章目录 小米秋招前端笔试卷1 1 Git 暂存操作的API是什么 2 的valueOf和toString的结果是什么 3 排序算法中哪一种算法的时间复杂度是O nlogn 4 通常情况下 一个URL的格式是 5 以下哪个项目不是可以在HT
  • 【Educoder作业】问题求解——for 循环

    E d u c o d e r Educoder Educoder作
  • VUE全局过滤器

    对于反复使用或多个组件使用的过滤器相同时应该考虑全局过滤器 1 最基本的使用方法 在main js中注册 Vue filter MyFilter function value 返回处理后的值 return value 在组件直接使用即可 2
  • THINKPHP5.1在windows系统下,安装workerman

    一 首先你要在项目里安装composer 按照步骤下载 php r copy https install phpcomposer com installer composer setup php php composer setup php
  • Linux(云计算)期末复习资料

    1 linux概述 Linux是一种自由 开放源代码的操作系统 它最初由芬兰的Linus Torvalds在1991年开发 目前已经成为世界上最流行的操作系统之一 Linux操作系统的特点是免费 稳定 安全 可定制 可移植性强 支持多任务
  • mysql索引 文件坏了_MySQL索引失效的几种情况

    1 索引无法存储null值 a 单列索引无法储null值 复合索引无法储全为null的值 b 查询时 采用is null条件时 不能利用到索引 只能全表扫描 为什么索引列无法存储Null值 a 索引是有序的 NULL值进入索引时 无法确定其
  • ASTM 协议

    ASTM 协议为标准组织美国材料实验室协会 ASTM 制定的在医疗临床实验室仪器和计算机系统间传输信息的一个标准 此标准有多个版本 本文中提到的版本为 E1394 97 下文中提到的 ASTM 均为 ASTM 的 E1394 97 是在 1
  • Kettle系列(一)下载安装与基础配置

    Kettle系列 一 下载安装与基础配置 说明 一 下载 二 目录结构 三 基础配置 1 环境变量 2 kettle配置 四 连接mysql8 五 连接其他数据库 六 总结 说明 更新时间 2023 08 13 17 47 本文记录了win
  • spring cloud系列学习(十、 使用Spring Security实现OAuth2授权认证存储redis)

    1 新增spring boot 导包
  • AOP获取方法返回值

    我们用Spring的AOP切面做日志收集或者记录的时候 在springboot中用 Aspect注解 比如 Aspect public class AdviceTest Before execution com abc service ma
  • xtu p1040 汉诺塔

    描述 约19世纪末 在欧州的商店中出售一种智力玩具 在一块铜板上有三根杆 最左边的杆上自上而下 由小到大顺序串着由64个圆盘构成的塔 目的是将最左边杆上的盘全部移到中间的杆上 条件是一次只能移动一个盘 且不允许大盘放在小盘的上面 这是一个著
  • Windows 7 64位机上搭建Android开发环境

    1 从http www oracle com technetwork java javase downloads jdk7 downloads 1880260 html下载Java JDK 根据机子本身配置 选择jdk 7u25 windo
  • Java整合GPT-3.5和GPT-4,让PPT制作变得更加轻松智能化

    在当今的商业环境中 PPT演示文稿已成为一种重要的沟通工具 然而 创建高质量的PPT往往耗时且繁琐 基于这个痛点 本文将介绍如何使用Java整合GPT 3 5 4 根据PPT模板自动生成完整的PPT 我们将使用Apache POI库操作来P
  • 通过ref使元素动态高度

    observeResize this nextTick gt const moreEditBoxHeight new ResizeObserver entries gt for let entry of entries 执行其他操作 let
  • centos8 安装docker环境

    CentOS8官方源不可用 需要切换到阿里云的centos8的源 先安装yum utils组件后 再增加docker源后 才可以进行docker的安装使用 备份centos8原有源信息 cp r etc yum repos d etc yu
  • 谈谈滞后补偿器与PI控制及其原理分析

    本文一览 1 什么是滞后补偿器以及和PI控制的联系 2 PI控制对系统的影响 1 什么是超前补偿器以及和PI控制的联系 上一篇文章提到了超前补偿器 超前这个词的含义就是相位提前 相位提前所带来的的好处就是减少振荡 加快系统的稳定 但是使用超
  • Android 状态栏、标题栏、屏幕高度

    http xqjay19910131 yahoo cn iteye com blog 1435249 android 状态栏 标题栏 屏幕高度 博客分类 android app 1 获取状态栏高度 decorView是window中的最顶层
  • VS2019配置Qt5.14.2以及在线配置Qt5.15.2

    简单记录下配置过程 一 配置Qt5 14 2 1 官网下载QT Index of archive qt 5 14 5 14 2 2 下载后 双击exe进行安装 博主这里安装到了目录D Qt Qt5 14 2 结合自己的路径 完毕后 环境变量
  • php关注获取微信code,基于PHP方法,微信公众号小程序获取code,access_token,openid,用户信息...

    发起获得code值链接 public function doPageGetcode appid yourappid 修改你的appid if appid return this gt result 10008 参数错误 这里的 redire
  • 蓝桥杯(Java) -day03

    1 蓝桥杯 Java day01 2 蓝桥杯 Java day02 一 滑行 蓝桥杯 2023省赛模拟题 滑行 问题描述 小蓝准备在一个空旷的场地里面滑行 这个场地的高度不一 小蓝用一个 n 行 m 列的矩阵来表示场地 矩阵中的数值表示场地