第15届蓝桥杯java-c组省赛真题

目录

一.拼正方形

1.题目

2.思路

3.代码

二.劲舞团

1.题目

2.思路

3.代码

三.数组诗意

1.题目

2.思路

3.代码

四.封闭图形个数

1.题目

2.思路

3.代码

五.吊坠

1.题目

六.商品库存管理

1.题目

2.思路

3.代码

七.挖矿

1.题目

2.思路

3.代码

八.回文字符串

1.题目

2.思路

3.代码


一.拼正方形

1.题目

2.思路

首先把1x1的方块转换为2x2的方块,然后算出所有的2x2的方块,只需要对这个值求根即可,因为数据过大,剩余的几个方块可以忽略不计,最后乘以2即可(因为方块边长为2)

3.代码

public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println(2717561*2);scan.close();}
}

二.劲舞团

1.题目

2.思路

暴力枚举搜索即可,稍微有点麻烦的是数据处理,用一个二维的字符串数组来存储每条记录,在字符相等的前提下,找出时间相差1ms的连续数据的即可,需要注意的是k次正确敲击是k次连击,所以最后的结果需要加1

3.代码

public class text17 {public static void main(String[] args) {String[][] s = new String[10000][3];Scanner scan = new Scanner(System.in);int i = 0;while(scan.hasNextLine()){String p = scan.nextLine();if(p.isEmpty()) break;s[i++] = p.split(" ");}int max = 0;int sum = 0;for(int j = 1;j<2000;j++){long tmp = Long.valueOf(s[j-1][2]);if(s[j][0].equals(s[j][1])){long temp = Long.valueOf(s[j][2]);if(temp-tmp<=1000L){sum++;max = Math.max(sum,max);//这里的max实际上是k-1次连击continue;}}sum = 0;}System.out.println(max+1);scan.close();}
}

三.数组诗意

1.题目

2.思路

就是一道思维数学题,只有能找出规律就能写出来,找不到规律暴力求解只能通过30%,向这种大数据范围的数学题一般都有规律,我们先把满足题目要求的解小范围输出看看有没有什么规律,像这道题输出1000以内满足条件的数据就可以看出来只有是2的整数次幂的数字都不满足连续整数相加相等这个条件,所以只需要判断给的数据有多少个是2的整数次幂就可以

注:这里运用到了位运算,因为2的整数次幂的2进制表示只有一个1,x&(x-1)==0就是符合2的整数次幂的条件

eg:8 ->1000

7->0111

3.代码

public class Main {public static int res;public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();long[] a = new long[n];for(int i = 0;i<n;i++){a[i] = scan.nextLong();if ((a[i] & (a[i] - 1)) == 0) {res++;}}System.out.println(res);scan.close();}
}

四.封闭图形个数

1.题目

2.思路

本题就是考察排序,输入数据范围很大,用冒泡O(n*n)是肯定不能通过所有测试用例的,时间复杂度太高了,用Arrays提供的sort就可以(sort内部是快速排序O(nlogn))

先按照封闭个数排序,如果封闭个数相等就按数值排序

3.代码

public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();int[] res = {1,0,0,0,1,0,1,0,2,1};//分别对应数字1-9的封闭空间个数//如果封闭空间个数相同,按数值大小比较int[][] a = new int[n][2];for(int i = 0;i<n;i++)a[i][0] = scan.nextInt();//思路:先按照封闭空间个数来排序,排序完再排数值大小for(int i = 0;i<n;i++){int tmp = a[i][0];int sum = 0;while(tmp>0){int cnt = tmp % 10;sum = sum + res[cnt];tmp = tmp / 10;}if(a[i][0]==0)  a[i][1] = 1;elsea[i][1] = sum;//记录封闭个数}//已将全部数字的封闭个数处理完毕Arrays.sort(a,(o1,o2)->o1[1]==o2[1] ? Integer.compare(o1[0],o2[0]) : Integer.compare(o1[1],o2[1]));for(int i = 0;i<n;i++)System.out.print(a[i][0]+" ");scan.close();}
}

五.吊坠

1.题目

最小生成树问题,不会写哈,没学过这个

六.商品库存管理

1.题目

2.思路

看到区间修改,就应该想到前缀和与差分,将时间复杂度优化到O(1)

前缀和:设置一个数组,数组每个元素保存的是该下标前所有元素的和,通过sum[i]-sum[i-1]

可以得到第i个元素的值

差分:设置一个数组,数组每一个元素是该当前下标与前一个下标元素的差值,当对数组区间进行操作用差分时间复杂度低,差分数组的前缀和就是数组的值

eg:给[l,r]区间所有的数加1

只需要对差分数组d[l]++,d[r+1]--,即可

因为本题数据很大,暴力解法只能通过部分用例

3.代码

public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();int m = scan.nextInt();int[] a = new int[n+1];int[] d = new int[n+2];int[][] k= new int[m+1][2];for(int i = 1;i<=m;i++){k[i][0] = scan.nextInt();k[i][1] = scan.nextInt();d[k[i][0]]++;d[k[i][1]+1]--;//更新差分数组//如果不设置差分数组:每次操作都需要遍历一次时间复杂度为(遍历次数+操作次数)}int[] sum = new int[n+1];sum[1] = d[1];for(int i = 2;i<=n;i++)sum[i] = sum[i-1] + d[i];//原数组int res1 = 0;for(int i = 1;i<=n;i++)if(sum[i]==0) res1++;for(int i = 1;i<=m;i++){int left = k[i][0];int right = k[i][1];int res2 = 0;for(int j = left;j<=right;j++){if(sum[j]==1)res2++;}System.out.println(res1+res2);}scan.close();}
}

七.挖矿

1.题目

2.思路

贪心问题+前缀和,首先我们要能想到挖矿的时候最多回头一次,或者不回头,符合贪心思想

通过前缀和数组来查询走到i距离时有多少个矿洞,用两个数组分别表示正负轴,但不能把0下标矿洞存储进去,要不然会重复计算0下标(有回头的情况)

3.代码

public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();int m = scan.nextInt();int[] a1 = new int[1000001];int[] a2 = new int[1000001];int a0 = 0;for(int i = 0;i<n;i++){int cnt = scan.nextInt();if(cnt>0)a1[cnt]++;if(cnt<0)a2[-cnt]++;if(cnt==0)a0++;}int[] sum1 = new int[1000001];//前缀和数组int[] sum2 = new int[1000001];for(int i = 1;i<=1000000;i++){sum1[i] = sum1[i-1] + a1[i];sum2[i] = sum2[i-1] + a2[i];}int max = Math.max(sum1[m],sum2[m]);//一直向一个方向走for(int i = 1;i<=1000000;i++){if(m-2*i>0) {max = Math.max(max, sum1[i] + sum2[m - 2 * i]);//走到i位置处回头max = Math.max(max, sum2[i] + sum1[m - 2 * i]);}}if(a0==1) max++;System.out.println(max);}
}

八.回文字符串

1.题目

2.思路

就是kmp匹配算法,暴力就行了,数据范围很小

3.代码

public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();scan.nextLine();for(int k = 0;k<n;k++){char[] s = scan.nextLine().toCharArray();//首先判断是否是回文字符串int left = 0;int right = s.length-1;boolean tmp = false;while(left<=right){if(s[left]==s[right]){left++;right--;}else{if(s[left]=='l'||s[left]=='q'||s[left]=='b')left++;else if(s[right]=='l'||s[right]=='q'||s[right]=='b')right--;else{System.out.println("No");tmp = true;break;}}}if(tmp) continue;else System.out.println("Yes");}scan.close();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玄机-应急响应-入侵排查

靶机排查目标&#xff1a; 1.web目录存在木马&#xff0c;请找到木马的密码提交 查看/var/www/html。 使用find命令查找 find ./ -type f -name "*.php | xargs grep "eval("查看到1.php里面存在无条件一句话木马。 2.服务器疑似存在不死马&#xff0c;请找…

usbip学习记录

USB/IP: USB device sharing over IP make menuconfig配置&#xff1a; Device Drivers -> Staging drivers -> USB/IP support Device Drivers -> Staging drivers -> USB/IP support -> Host driver 如果还有作为客户端的需要&#xff0c;继续做以下配置&a…

爱普生高精度车规晶振助力激光雷达自动驾驶

在自动驾驶技术快速落地的今天&#xff0c;激光雷达作为车辆的“智慧之眼”&#xff0c;其测距精度与可靠性直接决定了自动驾驶系统的安全上限。而在这双“眼睛”的核心&#xff0c;爱普生&#xff08;EPSON&#xff09;的高精度车规晶振以卓越性能成为激光雷达实现毫米级感知的…

28--当路由器开始“宫斗“:设备控制面安全配置全解

当路由器开始"宫斗"&#xff1a;设备控制面安全配置全解 引言&#xff1a;路由器的"大脑保卫战" 如果把网络世界比作一座繁忙的城市&#xff0c;那么路由器就是路口执勤的交通警察。而控制面&#xff08;Control Plane&#xff09;就是警察的大脑&#xf…

58.基于springboot老人心理健康管理系统

目录 1.系统的受众说明 2.相关技术 2.1 B/S结构 2.2 MySQL数据库 3.系统分析 3.1可行性分析 3.1.1时间可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.1.4 技术可行性 3.1.5 法律可行性 3.2系统流程分析 3.3系统功能需求分析 3.4 系统非功能需求分析 4.系统设计 …

去中心化固定利率协议

核心机制与分类 协议类型&#xff1a; 借贷协议&#xff08;如Yield、Notional&#xff09;&#xff1a;通过零息债券模型&#xff08;如fyDai、fCash&#xff09;锁定固定利率。 收益聚合器&#xff08;如Saffron、BarnBridge&#xff09;&#xff1a;通过风险分级或博弈论…

反射率均值与RCS均值的计算方法差异

1. 反射率均值&#xff08;Mean Reflectance&#xff09; 定义&#xff1a; 反射率是物体表面反射的电磁波能量与入射能量的“比例”&#xff0c;通常以百分比或小数表示。 反射率均值是对多个测量点反射率的算术平均&#xff0c;反映目标区域整体的平均反射特性。 特点&a…

[MySQL初阶]MySQL(8)索引机制:下

标题&#xff1a;[MySQL初阶]MySQL&#xff08;8&#xff09;索引机制&#xff1a;下 水墨不写bug 文章目录 四、从问题到底层&#xff0c;从现象到本质1.为什么插入的数据默认排好序2.MySQL的Page&#xff08;1&#xff09;为什么选择用Page&#xff1f;&#xff08;2&#x…

Access:在移动互联网与AI时代焕发新生

Microsoft Access&#xff1a;在移动互联网与AI时代焕发新生 在移动互联网和人工智能&#xff08;AI&#xff09;技术快速发展的今天&#xff0c;许多传统工具被认为已经过时。然而&#xff0c;Microsoft Access&#xff0c;这款曾经风靡一时的数据库&#xff0c;真的已经被淘…

【无人机】无人机PX4飞控系统高级软件架构

目录 1、概述&#xff08;图解&#xff09; 一、数据存储层&#xff08;Storage&#xff09; 二、外部通信层&#xff08;External Connectivity&#xff09; 三、核心通信枢纽&#xff08;Message Bus&#xff09; 四、硬件驱动层&#xff08;Drivers&#xff09; 五、飞…

【项目日记】高并发服务器项目总结

生活总是让我们遍体鳞伤&#xff0c; 但到后来&#xff0c; 那些受伤的地方一定会变成我们最强壮的地方。 -- 《老人与海》-- 高并发服务器项目总结 模块关系图项目工具模块缓冲区模块通用类型模块套接字socket模块信道Channel模块多路转接Poller模块 Reactor模块时间轮Tim…

Vue项目 bug 解决

Vue2项目部署失败 从gitee 上拉下一个前端项目&#xff0c;然后npm install&#xff0c;报错如下&#xff1a; 解决办法&#xff1a; 从 npm切换到cnpm&#xff1a;npm install -g cnpm执行命令export NODE_OPTIONS--openssl-legacy-provider下载依赖&#xff1a;cnpm instal…

接口自动化入门(四)

1. JMeter 的多组数据测试 1.1 使用 CSV 数据文件 JMeter 支持通过 CSV 文件提供多组测试数据&#xff0c;适用于参数化测试场景。具体步骤如下&#xff1a; 创建一个 CSV 文件&#xff0c;将测试数据以逗号分隔的形式存储。例如&#xff1a; username,passworduser1,pass1u…

企业数据分析何时该放弃Excel?

在企业数据分析中,Excel 的适用数据量范围取决于 数据复杂度、计算需求 和 硬件性能: 一、Excel 适合处理的数据量范围 数据规模适用场景限制与风险≤10万行- 日常报表 - 简单数据透视表 - 基础公式计算(如SUMIFS、VLOOKUP)处理流畅,无明显性能问题10万~50万行- 较复杂分析…

群晖NAS的最好的下载方式(虚拟机安装win系统安装下载软件)

一、背景 买NAS的其中一个用途就是下载&#xff0c;尤其是那种BT、磁力下载这种需要耗时较久的&#xff0c;开着电脑就是为了下载这种非常耗电和耗硬盘。 二、应对策略 既然有上面 “背景” 提到的痛点&#xff0c;有什么解决方式&#xff1f; NAS 上用docker安装迅雷&…

Spring AI与阿里云开发实践——生成式Java AI应用架构全解析

本文深度解析基于Spring框架与阿里云服务构建生成式AI应用的技术路径&#xff0c;涵盖架构设计、模型集成、性能优化三大维度。通过某金融企业智能客服系统实战案例&#xff0c;揭示Java生态下AI应用开发的7个关键实践要点&#xff0c;结合Gartner最新技术成熟度曲线&#xff0…

基于springboot体育俱乐部预约管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;线上管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;在科…

找不到导入的项目“xxx\QtMsBuild\Qt.props”。请确认 Import 声明“$(QtMsBuild)\Qt.props”中计算结果为

系列文章目录 文章目录 系列文章目录前言一、问题原因 前言 新建的项目visual studio2022 使用Qt vs tools 找不到导入的项目“E:\osgEarth\DigitalSimulationPlatform\DigitalSimulationPlatform\QtMsBuild\Qt.props”。 请确认 Import 声明“$(QtMsBuild)\Qt.props”中计算结…

WPF设计标准学习记录17

在控件中的ControlTemplate的触发器 <Button Content="将ControlTemplate定义在在控件中" Width="280" Height="40" Margin="10" Foreground="#747787"><Button.Template><ControlTemplate TargetType=&quo…

【DeepSeek原理学习2】MLA 多头隐变量注意力

解决的问题 Multi-Head Latent Attention&#xff0c;MLA——解决的问题&#xff1a;KV cache带来的计算效率低和内存需求大以及上下文长度扩展问题。 MLA原理 MLA原理&#xff1a;其核心思想是将键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;矩阵压缩到…