第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.pswp.cn/web/74963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74963.shtml
英文地址,請注明出處:http://en.pswp.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;矩陣壓縮到…