第十四届校模拟赛第一期(一)

  “须知少时凌云志,自许人间第一流”

   鄙人11月八号有幸参加学校校选拔赛,题型为5道填空题,5道编程题,总时间为4小时。奈何能力有限,只完成了5道填空和3道编程大题,现进行自省自纠,分享学习,与诸君共勉。

  若有高见,欢迎指点,水平有限,然无惧诸君笑尔。

  欢迎关注、评论、点赞、收藏,愿你见证我的成长!

什么?

目录

1、 二进制位数

问题描述

1.1代码实现

 2、跑断腿的小蓝

问题描述

 2.1代码实现

3、调和级数

问题描述

3.1代码实现

4、山谷

问题描述

4.1代码实现

 5、最小矩阵

问题描述

5.1代码实现

6、总结


1、 二进制位数

问题描述

十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。
十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。
请问十进制整数 2022 在二进制中是几位数?

解题思路:1、求一个十进制数的2进制位数,最简单易懂的方式就是对该数不断除以2,直至结果为小于0,求除以2的次数即可。

2、例如,4,4/2=2,2/2=1,1/2=0;我们知道4的二进制为100,刚好是三位数。

3、结果为 11。

1.1代码实现

 public static void main(String args[]){int Result=2022;int count=0;while (true){Result/=2;count++;if(Result==0)break;}System.out.println(count);}

 2、跑断腿的小蓝

问题描述

  小蓝每周六、周日都晨跑,每月的 1、11、21、31日也晨跑。其它时间不晨跑。
已知 2022年1月1日是周六,请问小蓝整个2022年晨跑多少天?

解题思路1、此题是往年蓝桥杯省赛真题的简单版,可以看我之前的博文有题解。

2、思路主要是对于明确跑步条件,要考虑到每个月天数不同,2月为28,其他为30,或31,可以通过一个简单的数组来表示。

3、通过设定week为表示当前为周几,week=week%7,求余实现,例如当星期九(其实没有这个说法哈哈),week变成2,即星期二。

4、通过对满足其中任一条件时天数的累积求得最终答案。

5、结果为 138

 2.1代码实现

 public static void main(String args[]){int Months[]={31,28,31,30,31,30,31,31,30,31,30,31};int week=6;//1月一号为周六int RunDays=0;for(int m=0;m<12;m++)for (int days=1;days<=Months[m];days++){if(days==1||days==11||days==21||days==31||week==6||week==0){RunDays++;}week++;week=week%7;//求余来设定周几}System.out.println(RunDays);}

3、调和级数

问题描述

小蓝特别喜欢调和级数 S(n)=1/1+1/2+1/3+1/4+…+1/n 。
请问,n 至少为多大时,S(n)>12 ?

解题思路:1、本题为简单的累加计数思路,当S(n)小于12时,通过对n进行累加

2、当S(n)大于12时即跳出循环,求得n

3、结果为 91380

3.1代码实现

public static void main(String args[]){double Sum=0;int Num=0;while (Sum<=12){Sum+=1.0/(Num+1);Num++;}System.out.println(Num);}

4、山谷

问题描述

  给定一个字母矩阵,如果矩阵中的某个位置不在四条边上,而且该位置上的字母小于其上下左右四个位置的字母,则称为一个山谷。
例如,对于如下矩阵

DDDDD
CADCE
FFFFA

 共有两个山谷,位于第二行第二列和第四列。请注意第二行第三列和第三行第五列都不是山谷。
对于如下30行60列的字母矩阵(请用等宽字体查看),请问有多少个山谷?

PHQGHUMEAYLNLFDXFIRCVSCXGGBWKFNQDUXWFNFOZVSRTKJPREPGGXRPNRVY
STMWCYSYYCQPEVIKEFFMZNIMKKASVWSRENZKYCXFXTLSGYPSFADPOOEFXZBC
OEJUVPVABOYGPOEYLFPBNPLJVRVIPYAMYEHWQNQRQPMXUJJLOOVAOWUXWHMS
NCBXCOKSFZKVATXDKNLYJYHFIXJSWNKKUFNUXXZRZBMNMGQOOKETLYHNKOAU
GZQRCDDIUTEIOJWAYYZPVSCMPSAJLFVGUBFAAOVLZYLNTRKDCPWSRTESJWHD
IZCOBZCNFWLQIJTVDWVXHRCBLDVGYLWGBUSBMBORXTLHCSMPXOHGMGNKEUFD
XOTOGBGXPEYANFETCUKEPZSHKLJUGGGEKJDQZJENPEVQGXIEPJSRDZJAZUJL
LCHHBFQMKIMWZOBIWYBXDUUNFSKSRSRTEKMQDCYZJEEUHMSRQCOZIJIPFION
EEDDPSZRNAVYMMTATBDZQSOEMUVNPPPSUACBAZUXMHECTHLEGRPUNKDMBPPW
EQTGJOPARMOWZDQYOXYTJBBHAWDYDCPRJBXPHOOHPKWQYUHRQZHNBNFUVQNQ
QLRZJPXIOGVLIEXDZUZOSRKRUSVOJBRZMWZPOWKJILEFRAAMDIGPNPUUHGXP
QNJWJMWAXXMNSNHHLQQRZUDLTFZOTCJTNZXUGLSDSMZCNOCKVFAJFRMXOTHO
WKBJZWUCWLJFRIMPMYHCHZRIWKBARXBGFCBCEYHJUGIXWTBVTREHBBCPXIFB
XVFBCGKCFQCKCOTZGKUBMJRMBSZTSSHFROEFWSJRXJHGUZYUPZWWEIQURPIX
IQFLDUUVEOOWQCUDHNEFNJHAIMUCZFSKUIDUBURISWTBRECUYKABFCVKDZEZ
TOIDUKUHJZEFCZZZBFKQDPQZIKFOBUCDHTHXDJGKJELRLPAXAMCEROSWITDP
TPCCLIFKELJYTIHRCQAYBNEFXNXVGZEDYYHNGYCDRUDMPHMECKOTRWOSPOFG
HFOZQVLQFXWWKMFXDYYGMDCASZSGOVSODKJGHCWMBMXRMHUYFYQGAJQKCKLZ
NAYXQKQOYZWMYUBZAZCPKHKTKYDZIVCUYPURFMBISGEKYRGZVXDHPOAMVAFY
RARXSVKHTQDIHERSIGBHZJZUJXMMYSPNARAEWKEGJCCVHHRJVBJTSQDJOOTG
PKNFPFYCGFIEOWQRWWWPZSQMETOGEPSPXNVJIUPALYYNMKMNUVKLHSECDWRA
CGFMZKGIPDFODKJMJQWIQPUOQHIMVFVUZWYVIJGFULLKJDUHSJAFBTLKMFQR
MYJFJNHHSSQCTYDTEAMDCJBPRHTNEGYIWXGCJWLGRSMEAEARWTVJSJBAOIOJ
LWHYPNVRUIHOSWKIFYGTYDHACWYHSGEWZMTGONZLTJHGAUHNIHREQGJFWKJS
MTPJHAEFQZAAULDRCHJCCDYRFVVRIVUYEEGFIVDRCYGURQDREDAKUBNFGUPR
OQYLOBCWQXKZMAUSJGMHCMHGDNMPHNQKAMHURKTRFFACLVGRZKKLDACLLTEO
JOMONXRQYJZGINRNNZWACXXAEDRWUDXZRFUSEWJTBOXVYNFHKSTCENAUMNDD
XFDMVZCAUTDCCKXAAYDZSXTTOBBGQNGVVPJGOJOGLMKXGBFCPYPCKQCHBDDZ
WRXBZMQRLXVOBTWHXGINFGFRCCLMZNMJUGWWBSQFCIHUBSJOLLMSQSGHMCPH
ELSOTFLBGSFNPCUZSRUPCHYNVZHCPQUGRIWNIQXDFJPWPXFBLKPNPEELFJMT

解题思路: 1、本题初看有点唬人,其实原理不难,求山谷数,其实求某个字母其上下左右都比它大的数量。

2、首先建立一个字符串数组,大小为30,输入并存储这些字符串。

3、然后使用String中的常用方法charAt()来通过下标获取某个字符,遍历1800个字母后,筛选符合条件的字母,即其上、下、左、右都大于它。

4、通过计数后得到答案。

5、结果为 276

4.1代码实现

  public static void main(String agrs[]){Scanner scanner=new Scanner(System.in);String []Array=new String[30];for(int i=0;i<30;i++){Array[i]=scanner.next();}//System.out.println("Over!");int count=0;for(int l=1;l<29;l++)for (int c=1;c<59;c++){if(Array[l].charAt(c)<Array[l-1].charAt(c)&&Array[l].charAt(c)<Array[l+1].charAt(c)&&Array[l].charAt(c)<Array[l].charAt(c-1)&&Array[l].charAt(c)<Array[l].charAt(c+1))count++;}System.out.print(count);}

 5、最小矩阵

问题描述

  小蓝有一个 100 行 100 列的矩阵,矩阵的左上角为 1。其它每个位置正好比其左边的数大 2,比其上边的数大 1 。
例如,第 1 行第 2 列为 3,第 2 行第 2 列 为 4,第 10 行第 20 列为 48。
小蓝想在矩阵中找到一个由连续的若干行、连续的若干列组成的子矩阵,使得其和为 2022,请问这个子矩阵中至少包含多少个元素(即子矩阵的行数和列数的乘积)

解题思路:

1、矩阵应该是如图所示的分布

2、首先需要构建该矩阵,实现其右边元素比左边大1,下边比上大2,代码入下:

   int Array[][] = new int[100][100];for (int L = 0; L <99; L++) {for (int C = 0; C <99; C++) {if (L == 0 && C == 0)Array[L][C] = 1;if (C == 0 && L != 0)Array[L][C] = Array[L - 1][C] + 1;Array[L][C + 1] = Array[L][C] + 2;}}

即每一行的元素都是左边元素+2后的值,每一列的数,都是上一个元素+1后的值!

(可恶啊,构建这个矩阵也想了我好久)

3、本人的想法是暴力解法,即构建一个Sum方法对于其子矩阵求和,并通过子矩阵最后一个元素的下标求该子矩阵总共的元素数量!

即Result=(2+1)*(3+1)=12

4、通过遍历全部元素可得子矩阵中和未2022的子矩阵有多个符合条件,且须为最小的元素数量

5、结果为 12

5.1代码实现

public  static void main(String agrs[]) {int Sum=0;int Result=0;int Array[][] = new int[100][100];for (int L = 0; L <99; L++) {for (int C = 0; C <99; C++) {if (L == 0 && C == 0)Array[L][C] = 1;if (C == 0 && L != 0)Array[L][C] = Array[L - 1][C] + 1;Array[L][C + 1] = Array[L][C] + 2;}}for (int x = 0; x <100; x++) {for (int y = 0; y <100; y++) {for(int n=1;n<100-x;n++){for (int k=1;k<100-y;k++){Sum=FindSum(Array,x,y,n,k);if(Sum==2022) {Result=n*k;//System.out.println(n*k);break;}else if(Sum>2022)break;}}}}System.out.println(Result);}public static int FindSum(int Num[][],int x,int y,int x1,int y2){int Sum=0;for(int L=x;L<x+x1;L++) {for (int C=y; C< y + y2; C++)Sum += Num[L][C];}return Sum;}

6、总结

  总的来说,题目有难有简单,但是都值得我们去细细思索,去钻研,本期题解就到这里了,欢迎下期再见(五道编程大题)。欢迎关注!!

发文不易,恳请大佬们高抬贵手!


点赞:随手点赞是种美德,是大佬们对于本人创作的认可!


评论:往来无白丁,是你我交流的的开始!


收藏:愿君多采撷,是大佬们对在下的赞赏!

 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

四 . 分支和循环——Java基础篇

四 . 分支和循环 1 . switch的基本语法 if 和 swicth 的对比: if既可以用于范围校验, 也可以用于等值校验swicth对于if效率更高,只能用于等值校验 语法格式: switch(表达式){case 常量值1:语句块1;//break;case 常量值2:语句块2;//break; // ...[default:语句块n1;break;] }…

面试redis篇-10Redis集群方案-主从复制

在Redis中提供的集群方案总共有三种: 主从复制哨兵模式分片集群主从复制 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。 主从数据同步原理 Replication Id:简称replid,是数据集的标记,id一致则说明是同一数据集。每…

Wireshark TS | Linux 系统对时问题

问题描述 节前业务运维同事提交了一个 case &#xff0c;说是部署在新业务区域的 Linux 服务器和老业务区域的 Linux 服务器无法对时&#xff0c;脚本里使用的是 clockdiff 命令&#xff0c;无法正常返回结果&#xff0c;而在老业务区域两台服务器之间执行命令就正常&#xff…

【笔记】深度学习入门:基于Python的理论与实现(三)

误差反向传播法 一 个能够高效计算权重参数的梯度的方法 计算图 正向传播 太郎在超市买了 2 个 100 日元一个的苹果&#xff0c;消费税是 10%&#xff0c;请计 算支付金额。 反向传播&#xff08;导数&#xff09; 如果苹果的价格增加某个微小值&#xff0c; 则最终的支付金额…

【JavaSE】实用类——String、日期等

目录 String类常用方法String类的equals()方法String中equals()源码展示 “”和equals()有什么区别呢&#xff1f; StringBuffer类常用构造方法常用方法代码示例 面试题&#xff1a;String类、StringBuffer类和StringBuilder类的区别&#xff1f;日期类Date类Calendar类代码示例…

Redis学习------实战篇----2024/02/27

1.导入项目 2.基于Session实现登录 手机验证码完整实现 /*** 发送验证码* param phone* param session* return*/Overridepublic Result sendCode(String phone, HttpSession session) {//1.校验手机号if(RegexUtils.isPhoneInvalid(phone)){//2.如果不符合&#xff0c;返回错…

非常好!超齐全的故障诊断数据集及相关实验平台介绍

故障诊断数据集目录 一. 故障诊断数据集库介绍 二. 轴承故障诊断数据集 1.美国-凯斯西储大学轴承数据中心轴承数据集 2.SUDA试验台数据集 3.美国-机械故障预防技术学会MFPT 4.德国-帕德伯恩大学Paderborn轴承数据集 5.SDUST山东科技大学数据集 6.SEU东南大学轴承数据集 …

ARMv8-AArch64 的异常处理模型详解之异常处理详解(同步异常和异步异常的分析和处理)

这里写目录标题 一&#xff0c;同步异常的分析1.1 同步异常分析-异常链接寄存器ELR1.2 同步异常分析-异常综合寄存器ESR&#xff0c;Exception Syndrome Register1.3 同步异常分析-错误地址寄存器FAR,Fault Address Register 二&#xff0c; 同步异常的处理示例 Synchronous ex…

windows 11+docker desktop+grafana+influxDB+python写入

下载安装docker desktop 出现WSL相关的错误。WSL是一个linux内核的子系统&#xff0c;docker是基于linux内核的&#xff0c;所以运行docker需要WSL。 以管理员权限打开powershell&#xff0c;查看WSL状态 wsl --status 我遇到的错误是因为我关闭了windows的某些更新 执行上…

SAP Business Technology Platform (BTP)的架构理解

长期以来&#xff0c;我在与客户和伙伴的沟通交流中发现大家依然对SAP业务技术平台 - SAP Business Technology Platform (以下简称BTP)纯有各种疑惑&#xff0c;借此机会借助我原来作为SAP内部IT开发的经验和近期一年来在客户前线的经验&#xff0c;简要聊一下我对BTP的架构理…

工厂安全智能巡检机器人系统开发及其对您的价值体现

在工厂生产环境中&#xff0c;安全生产一直是业主、采购商以及中间商们十分关注的焦点。为了提升工厂生产线的安全性、效率和可追溯性&#xff0c;一款工厂安全智能巡检机器人系统应运而生&#xff0c;旨在为需求方带来全新的生产安全管理模式。 自动巡检增加效率 传统的工厂…

SD-WAN技术:优化国内外服务器访问的关键

在全球化的商业环境中&#xff0c;企业经常需要在国内访问国外的服务器。然而&#xff0c;由于地理位置和网络架构的限制&#xff0c;这种跨国访问往往会遇到速度慢、延迟高等问题。SD-WAN&#xff08;软件定义广域网&#xff09;技术的兴起&#xff0c;为企业提供了一种新的解…

大文件传输之udp如何传输大量数据

在数字化时代&#xff0c;对大文件传输的需求正以前所未有的速度增长。无论是个人用户还是企业&#xff0c;都急切寻求一种能够快速且稳定地处理大量数据的传输方法。UDP&#xff08;用户数据报协议&#xff09;以其无连接的特性和高效的数据传输能力&#xff0c;成为了大文件传…

C语言自定义数据类型(三)结构体指针

所谓结构体指针就是指向结构体变量的指针&#xff0c;一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中&#xff0c;那么&#xff0c;这个指针变量就指向该结构体变量。 目录 一、指向结构体变量的指针 1.1举例说明 …

就业班 2401--2.26 Linux Day5--进程管理一

一、权限扩展 文件权限管理之&#xff1a; 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ----------------…

【吴恩达·机器学习】第四章:详解神经网络:推理和训练

博主简介&#xff1a;努力学习的22级计算机科学与技术本科生一枚&#x1f338;博主主页&#xff1a; Yaoyao2024每日一言&#x1f33c;: 勇敢的人&#xff0c;不是不落泪的人&#xff0c;而是愿意含着泪继续奔跑的人。 ——《朗读者》 0、声明 本系列博客文章是博主本人根据吴…

RubyMine 2023:让Ruby编程变得更简单 mac/win版

JetBrains RubyMine 2023是一款专为Ruby开发者打造的强大集成开发环境&#xff08;IDE&#xff09;。这款工具集成了许多先进的功能&#xff0c;旨在提高Ruby编程的效率和生产力。 RubyMine 2023软件获取 RubyMine 2023的智能代码编辑器提供了丰富的代码补全和提示功能&#…

深度学习基础(三)循环神经网络(RNN)

之前的章节我们初步介绍了卷积神经网络&#xff08;CNN&#xff09;&#xff1a; 深度学习基础&#xff08;二&#xff09;卷积神经网络&#xff08;CNN&#xff09;-CSDN博客文章浏览阅读2次。卷积神经网络&#xff08;CNN&#xff09;的应用领域广泛&#xff0c;尤其在图像处…

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错 报错信息 [PAClient Error] Error: E7688 Unable to execute "E:\Program\Java\jdk1.8.0_301\bin\java.exe" -cp "e:\program\embarcadero\studio\22.0\bin\Android\r8-3.3.28.jar"…

git push提交后GitHub没有统计我的Contributions

我在家里的电脑上创建了一个仓库&#xff0c;然后在笔记本上录取下来并进行提交合并等操作&#xff0c;但是发现笔记本上提交的记录并没有被github记录&#xff0c;就是那个绿色的点没有 就是提交完之后 没有出现当天的绿色的点 通过git log 后发现&#xff0c;提交记录中存在…