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

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

   鄙人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://www.mzph.cn/news/710746.shtml

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

相关文章

改进YOLO系列 | YOLOv5/v7 引入通用高效层聚合网络 GELAN | YOLOv9 新模块

今天的深度学习方法专注于如何设计最合适的目标函数,以使模型的预测结果最接近真实情况。同时,必须设计一个合适的架构,以便为预测提供足够的信息。现有方法忽视了一个事实,即当输入数据经过逐层特征提取和空间转换时,会丢失大量信息。本文将深入探讨数据通过深度网络传输…

[AutoSar]BSW_Com06 CAN报文应用层到Can总线的函数调用

目录 关键词平台说明一、背景二、PDU转换三、函数调用 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c;芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC)autosar版本4.3.X >>>>>回到总目…

流水账-20240229

目录 git本地回滚到到120bc409ee3b8f63a23d0060e55118bcce557acf提交记录本地提交到已有代码分支 IDEA批量导入快捷键无效更换背景主题快捷键快捷键可以设置eclipse模式&#xff0c;但是有些不生效&#xff0c;可能是冲突了Ctrl单击&#xff0c;Eclipse里面是可以跳转到代码内部…

AI:139-基于深度学习的语音指令识别与执行

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

js实现文件下载,并传给后端

在JavaScript中&#xff0c;可以通过创建一个链接并设置其href属性为文件的URL&#xff0c;然后使用download属性指定文件的名称来实现文件下载。以下是一个简单的示例代码&#xff1a; function downloadFile(url, filename) {const link document.createElement(a);link.hr…

Vue3自定义文件列表页面(含上传、搜索、复制链接)

文章目录 一、代码展示二、代码解读三、结果展示 一、代码展示 <template><div class"container"><h1>文件列表</h1><div class"header-actions"><a-input placeholder"输入关键词搜索" v-model:value"…

字符串函数strchr()详解

一、strchr()函数的作用 字符串函数 strchr() 是 C 语言的一个标准库函数&#xff0c;它的作用是在一个字符串中查找给定字符的第一个匹配之处&#xff0c;并返回指向该字符的指针。如果没有找到该字符&#xff0c;则返回 NULL。1 二、strchr()函数的原型和参数 strchr()函数…

【笔记】:更方便的将一个List中的数据传入另一个List中,避免多重循环

这里是 simpleInfoList 集合&#xff0c;记为集合A&#xff08;传值对象&#xff09; List<CourseSimpleInfoDTO> simpleInfoList courseClient.getSimpleInfoList(courseIds);if(simpleInfoListnull){throw new BizIllegalException("当前课程不存在!");}这…

【Spring连载】使用Spring Data----对象映射基础Object Mapping Fundamentals

【Spring连载】使用Spring Data----对象映射基础Object Mapping Fundamentals 一、对象创建1.1 对象创建内部机制Object creation internals 二、属性填充Property population2.1 属性填充内部机制Property population internals 三、一般建议3.1 覆盖属性 四、Kotlin支持4.1 K…

libigl 网格中点细分(网格上采样)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 在网格细分中,我们可以将每个三角形分成若干个更小的三角形。其中最简单的情况就是通过计算每个三角形每条边的中点,这样就可以将三角形分成四个更小的三角形。不过该方法并不会使得网格的表面和面积发生变化,而…

Python:练习:编写一个程序,写入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款

案例&#xff1a; python编写一个程序&#xff0c;写入一个美金数量&#xff0c;然后显示出如何用最少的20美元、10美元、5美元和1美元来付款&#xff1a; Enter a dollar amout:93 $20 bills: 4 $10 bills: 1 $5 bills:0 $1 bills:3 思考&#xff1a; 写入一个美金数量&…

数据分析Pandas专栏---第十一章<Pandas数据聚合与分组(1)>

前言: 数据聚合和分组操作是数据处理过程中不可或缺的一部分。它们允许我们根据特定的条件对数据进行分组&#xff0c;并对每个组进行聚合计算。这对于统计分析、汇总数据以及生成报告和可视化非常有用。无论是市场营销数据分析、销售业绩评估还是金融数据建模&#xff0c;数据…

【数据分享】2000~2023年MOD15A2H 061 叶面积指数LAI数据集

各位同学们好&#xff0c;今天和大伙儿交流的是2000~2013年MOD15A2H 061 LAI数据集。如果大家有下载处理数据等方面的问题&#xff0c;您可以私信或评论。 Myneni, R., Y. Knyazikhin, T. Park. MODIS/Terra Leaf Area Index/FPAR 8-Day L4 Global 500m SIN Grid V061. 2021, d…

在原有项目进行业务逻辑开发:同一用户短时间不得提交多次申请,以及更新主表时数据刷新掉了角色权限以及密码重置的问题,详细思路及代码

开发背景&#xff1a; 用户提交表单后&#xff0c;插入到对应数据库表的字段中去&#xff0c;因需要保存是哪一个用户提交的&#xff0c;所以需要拿到主表的user_id&#xff0c;更新功能为记录提交时间&#xff0c;短时间不得再次提交 在对一个已有角色权限分配&#xff0c;登录…

【Spring连载】使用Spring Data访问 MongoDB----对象映射之对象引用

【Spring连载】使用Spring Data访问 MongoDB----对象映射之对象引用 一、使用DBRefs 一、使用DBRefs

layui中,父页面与子页面,函数方法的相互调用、传参

<%--父页面--%> <script type"text/javascript">var KaoHaoType 0; // 考号类型 自定义参数1// 选取考号类型function SelectKaoHaoType(callBack) {KaoHaoType 0; // 默认选择填涂考号layer.open({type: 2, title: 请选择 考号区类型, ar…

职场中被小人欺负了,应该一笑了之吗?还是怎么办?

在职场中遇到不公正的待遇或被欺负&#xff0c;确实是一个让人困扰的问题。处理这类问题&#xff0c;首先要保持冷静和理性&#xff0c;避免情绪化的反应&#xff0c;这样有助于找到最合适的解决方案。以下是一些建议&#xff0c;您可以根据具体情况考虑&#xff1a; 1. **保持…

如何使用 Socket.IO、Angular 和 Node.js 创建实时应用程序

介绍 WebSocket 是一种允许服务器和客户端之间进行全双工通信的互联网协议。该协议超越了典型的 HTTP 请求和响应范式。通过 WebSocket&#xff0c;服务器可以向客户端发送数据&#xff0c;而无需客户端发起请求&#xff0c;因此可以实现一些非常有趣的应用程序。 在本教程中…

网络编程作业day2

1.将TPC和UDP通信模型各敲两遍 &#xff08;1&#xff09;TPC通信模型&#xff1a; 服务器代码&#xff1a; #include <myhead.h> #define SERVER_IP "192.168.125.136" #define SERVER_PORT 1314 int main(int argc, const char *argv[]) {//1、创建用于监…

CLion 2023:专注于C和C++编程的智能IDE mac/win版

JetBrains CLion 2023是一款专为C和C开发者设计的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它集成了许多先进的功能&#xff0c;旨在提高开发效率和生产力。 CLion 2023软件获取 CLion 2023的智能代码编辑器提供了丰富的代码补全和提示功能&#xff0c;使您能够更…