第十四屆校模擬賽第一期(一)

? “須知少時凌云志,自許人間第一流”

?? 鄙人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.pswp.cn/news/710746.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710746.shtml
英文地址,請注明出處:http://en.pswp.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;使您能夠更…