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

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

   鄙人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.mfbz.cn/a/435457.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【系统安全加固】Centos 设置禁用密码并打开密钥登录

文章目录 一&#xff0c;概述二&#xff0c;操作步骤1. 服务器端生成密钥2. 在服务器上安装公钥3.下载私钥到本地&#xff08;重要&#xff0c;否则后面无法登录&#xff09;4. 修改配置文件&#xff0c;禁用密码并打开密钥登录5. 重启sshd服务6. 配置xshell使用密钥登录 一&am…

Anaconda prompt运行打开jupyter notebook 指令出错

一、打不开jupyter notebook网页 报错如下&#xff1a; Traceback (most recent call last): File “D:\anaconda3\lib\site-packages\notebook\traittypes.py”, line 235, in _resolve_classes klass self._resolve_string(klass) File “C:\Users\DELL\AppData\Roaming\Py…

MATLAB知识点:循环语句的经典练习题:二分搜索

​讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 节选自​第4章&#xff1a;MATLAB程序流程控制 这个例题我们…

小白跟做江科大51单片机之LCD1602滚动显示效果

1.查看原理图 图1 LCD1602接口 图2 LCD1602与STC的接口 2.编写代码 图3 时序结构 根据时序结构编写命令和写入数据代码 #include <REGX52.H> #include "Delay.h" sbit LCD1602_ENP2^7; sbit LCD1602_RSP2^6; sbit LCD1602_WRP2^5; #define LCD1602_lCD0 …

css补充(上)

有关字体 1.所有有关字体的样式都会被继承 div {font-size: 30px;}<span>777</span> <div>123<p>456</p> </div>span中777是默认大小16px div设置了30px p作为div的后代继承了字体样式也是30px 2.字体颜色 div{color: red;border: 1px …

[java] 23种设计模式之责任链模式

1.1例子 公司请假系统&#xff0c;业务逻辑如下&#xff1a; 不超过3天的&#xff0c;组长审批 超过3天且小于7天的&#xff0c;总监审批 超过7天且小于15天的&#xff0c;部长审批 超过15天&#xff0c;前端直接拒绝&#xff0c;不会进入审批流程&#xff08;违反了公司的请假…

Stable diffusion零基础课程

该课程专为零基础学习者设计&#xff0c;旨在介绍和解释稳定扩散的基本概念。学员将通过简单易懂的方式了解扩散现象、数学模型及其应用&#xff0c;为日后更深入的科学研究和工程应用打下坚实基础。 课程大小&#xff1a;3.8G 课程下载&#xff1a;https://download.csdn.ne…

如何理解和利用好点对点传输?

在当今数字化时代&#xff0c;数据传输已成为企业和个人日常工作的核心部分。点对点传输&#xff08;P2P&#xff09;作为一种高效的数据交换方式&#xff0c;正逐渐成为网络通信的主流。本文将探讨如何理解和利用点对点传输&#xff0c;分析其优缺点&#xff0c;并介绍镭速如何…

绝地求生:收纳控福音!老登教你怎么塞满三级包最划算!

大家好&#xff0c;我是闲游盒~ 作为一个5000小时的PUBG老登&#xff0c;我认为这个绝地求生这个游戏&#xff0c;抛开外挂不谈&#xff0c;是一个非常有意思的FPS游戏&#xff0c;不论是要强度还是要趣味&#xff0c;大多数玩家都能在这里找到想要的节奏。 一直以来是想做一些…

HarmonyOS NEXT应用开发案例——全屏登录页面

全屏登录页面 介绍 本例介绍各种应用登录页面。 全屏登录页面&#xff1a;在主页面点击跳转到全屏登录页后&#xff0c;显示全屏模态页面&#xff0c;全屏模态页面从下方滑出并覆盖整个屏幕&#xff0c;模态页面内容自定义&#xff0c;此处分为默认一键登录方式和其他登录方…

leancloud云存储如何接入App Inventor 2?

提问&#xff1a;leancloud如何应用到App Inventor 2&#xff1f; LeanCloud 能够高效存取海量级 JSON 对象、二进制文件、地理位置等数据。其内置的行级 ACL 权限控制&#xff0c;以及通用的用户及角色管理体系&#xff0c;可以快速实现安全而灵活的数据访问。 根据官方文档&a…

Java零基础 - try-catch-finally和throw语句

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

语义化与自动化——第三代指标平台两大核心能力详解(内含QA)

【作者简介】杜雪芳&#xff0c;Aloudata 合伙人兼首席业务架构师。12 年数据业务从业经验&#xff0c;3 年管理咨询经验。历任阿里集团淘宝商业分析负责人、阿里音乐商业智能中心负责人、蚂蚁集团用户增长分析与洞察产品负责人。在数据体系搭建、数据分析、用户标签建设、用户…

百度给程序员发放京东购物卡,注册即送30元购物卡

活动真实有效&#xff1a; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;https://comate.baidu.com/?inviteCodeexf818mt 活动参与流程说明&#xff1a;点击下面的邀请链接进行登陆&#xff0c;注意一定要邀请链接&#xff0c;因为通过链接注册可以获…

windows使用sarama往kafka发送数据

首先先在本地安装好java&#xff0c;打开cmd&#xff0c;输入java -version&#xff0c;出现以下信息代表java安装成功。 之后依次安装zookeeper和kafka并启动&#xff0c;详细安装与启动步骤可参考&#xff1a; 【Kafka】Windows下安装Kafka&#xff08;图文记录详细步骤&…

STM32采集电池电量方法实现

一、项目简介 若设备接了锂电池&#xff0c;可以通过STM32的ADC采集电池的电量。锂电池为3节3.7V的单节串联&#xff0c;整体电压大约为12V。 二、实现过程 1、由于STM32采集的电压范围为0-3.3V&#xff0c;所以无法直接采集锂电池的电压&#xff0c;这里可以用外接分压电阻的…

新建Flutter工程修改配置

由于国内 网络环境原因&#xff0c; 新建 flutter工程的 配置文件 需要修改几个地方&#xff0c; 1. gradle-wrapper.properties 问题&#xff1a;Exception in thread "main" java.net.ConnectException: Connection timed out: connect&#xff1a; 解决方法&#…

已解决(亲测可行):pycharm打开项目、关闭项目进度缓慢或者卡住

1.问题描述 pycharm打开项目、关闭项目进度缓慢或者卡住,自己体会。 2. 解决方案 方案一 在帮助里面 更改内存设置里面将最大堆大小调大。并保存重启。如果还卡,请看方案二。 方案二 安装下述顺序进行操作:帮助 -> 查找操作 -> 输入 注册表 -> 不勾选 ide.…

应用监控 eBPF 版:实现 Golang 微服务的无侵入应用监控

作者&#xff1a;古琦 在现代软件架构中&#xff0c;微服务已成为构建可扩展和灵活应用程序的流行方式。每个微服务负责应用程序的一部分功能&#xff0c;它们共同工作以提供完整的服务。由于微服务架构的分散特性&#xff0c;监控变得至关重要&#xff0c;有效的微服务监控是…

3.4日java作业---华为手机小米手机入库问题

​​​​​​​ ​​​​​​​ ​​​​​​​ 【案例】 任务描述 现要对华为和小米两种手机产品进行入库&#xff0c;本案例要求编写一个模拟商品入库的程序&#xff0c;可以在控制台输入入库商品的数量&#xff0c;最后打印出仓库中所有商品详细信息…
最新文章