【藍橋杯】第十六屆藍橋杯 JAVA B組記錄

試題 A: 逃離高塔

在這里插入圖片描述

很簡單,簽到題,但是需要注意精度,用int會有溢出風險

答案:202

package lanqiao.t1;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;public class Main {static class io {static InputStreamReader ins = new InputStreamReader(System.in);static StreamTokenizer in = new StreamTokenizer(ins);static BufferedReader br = new BufferedReader(ins);static PrintWriter out = new PrintWriter(System.out);static int readInt() throws IOException {in.nextToken();return (int) in.nval;}}public static void main(String[] args) {long n = 2025;long ans = 0;for (long i = 1; i <= n; i++) {long num = i * i * i;if (num % 10 == 3) {ans++;}}io.out.println(ans);io.out.flush();}
}

試題 B: 消失的藍寶

在這里插入圖片描述

讀完一遍題,發現就是求N的最小,這里令兩個日期分別為 a,b,那么就是
(n + a)%b == 0
(n+b)%a==0
第一眼想的是中國剩余定理,但是后面一看可以暴力
可以轉換為 求(n+a)%b == 0 ,那么(n+a)一定是 b的倍數,那么就可以轉為為:
求 (kb - 9999) % a == 0 ,把k求出來直接反推就行了]

答案: 409876661809331


package lanqiao.t2;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StreamTokenizer;public class Main {static class io {static InputStreamReader ins = new InputStreamReader(System.in);static StreamTokenizer in = new StreamTokenizer(ins);static BufferedReader br = new BufferedReader(ins);static PrintWriter out = new PrintWriter(System.out);static int readInt() throws IOException {in.nextToken();return (int) in.nval;}}public static void main(String[] args) {long x = 20250412, y = 20240413;boolean flag = true;for (int i = 9999; i <= 99999999 && flag; i++) {long num = i * y;io.out.println(num);io.out.flush();if ((num - 9999) % x == 0) {io.out.println(i);io.out.flush();break;}}io.out.flush();}}

試題 C: 電池分組

在這里插入圖片描述

俺位異或,就是將兩個數轉成二進制,如果相同的位數都為1,那么結果這一位就是1,其余就是0
有兩種想法,一種是統計二進制每一位有多少個,如果最后所有位數都是偶數,那么就是可以的,否則就不行
另外一種就是第一種的簡化,如果兩組的異或結果相同,那么兩個再異或一定為0,所以只需要看是否異或起來結果為0就行


public class Main {static class io {static InputStreamReader ins = new InputStreamReader(System.in);static StreamTokenizer in = new StreamTokenizer(ins);static BufferedReader br = new BufferedReader(ins);static PrintWriter out = new PrintWriter(System.out);public static int readInt() throws IOException {in.nextToken();return (int) in.nval;}}public static void main(String[] args) throws IOException {int t = io.readInt();while (t-- > 0) {int n = io.readInt();int num = 0;for (int i = 1; i <= n; i++) {num = num ^ io.readInt();}if (num == 0) {io.out.println("YES");} else {io.out.println("NO");}io.out.flush();}}
}

試題 D: 魔法科考試

在這里插入圖片描述

題意就是用 a數組和b數組進行兩兩組合,如果為質數,并且小于等于n+m,那么就是有效的,問一共有多少種,其實真正的復雜度在于如何去判斷質數,如果暴力那肯定不行,所以需要預處理,用質數篩預處理就行了


public class Main {static class io {static InputStreamReader ins = new InputStreamReader(System.in);static StreamTokenizer in = new StreamTokenizer(ins);static BufferedReader br = new BufferedReader(ins);static PrintWriter out = new PrintWriter(System.out);public static int readInt() throws IOException {in.nextToken();return (int) in.nval;}}static Set<Integer> set = new TreeSet<Integer>();static {int num = 400000;int cnt = 0;int[] st = new int[num + 1];int[] prime = new int[num + 1];for (int i = 2; i <= num; i++) {if (st[i] == 0) {st[i] = 1;prime[cnt++] = i;set.add(i);}for (int j = 0; j < cnt && i * prime[j] <= num; j++) {st[i * prime[j]] = 1;if (i % prime[j] == 0) {break;}}}}public static void main(String[] args) throws IOException {int n = io.readInt(), m = io.readInt();int[] a = new int[n], b = new int[m];for (int i = 0; i < n; i++) {a[i] = io.readInt();}for (int i = 0; i < m; i++) {b[i] = io.readInt();}Arrays.sort(a);Arrays.sort(b);Set<Integer> ans = new HashSet<Integer>();for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {int num = a[i] + b[j];if (num > n + m)break;if (set.contains(num)) {ans.add(num);}}}io.out.print(ans.size());io.out.flush();}
}

試題 E: 爆破

在這里插入圖片描述

題意分析:將所有圓鏈接起來,所用的長度最小,首先想到的就是最小生成樹,那么直接用prim或者kruskal算法,那么莫如何轉換為算法的模型呢,如果兩個圓相交,那么這兩個圓心連城的邊就是0,如果未相交,那么就是圓心距離-r1-r2,然后建圖即可


public class Main {static class io {static InputStreamReader ins = new InputStreamReader(System.in);static StreamTokenizer in = new StreamTokenizer(ins);static BufferedReader br = new BufferedReader(ins);static PrintWriter out = new PrintWriter(System.out);public static int readInt() throws IOException {in.nextToken();return (int) in.nval;}}static class Point {int no;int x;int y;int r;public Point(int no, int x, int y, int r) {this.no = no;this.x = x;this.y = y;this.r = r;}}static int N = 5010;static class Edge implements Comparable<Edge> {int a;int b;double c;public Edge(int a, int b, double c) {this.a = a;this.b = b;this.c = c;}@Overridepublic int compareTo(Edge o) {return Double.compare(this.c, o.c);}}static int[] fa;static int find(int x) {return fa[x] == x ? fa[x] : (fa[x] = find(fa[x]));}public static void main(String[] args) throws IOException {int n = io.readInt();fa = new int[n + 1];for (int i = 1; i <= n; i++) {fa[i] = i;}Point[] points = new Point[n + 1];for (int i = 1; i <= n; i++) {points[i] = new Point(i, io.readInt(), io.readInt(), io.readInt());}int cnt = 0;Edge[] edges = new Edge[n * n];for (int i = 1; i <= n; i++) {for (int j = i + 1; j <= n; j++) {Point point1 = points[i], point2 = points[j];int r1 = point1.r, r2 = point2.r;double dis = Math.sqrt((point1.x - point2.x) * (point1.x - point2.x) + (point1.y - point2.y) * (point1.y - point2.y));if (r1 + r2 < dis) {double d = dis - r1 - r2;edges[cnt++] = new Edge(i, j, d);} else {edges[cnt++] = new Edge(i, j, 0);}}}Arrays.sort(edges, 0, cnt);double ans = 0;for (int i = 0; i < cnt; i++) {Edge edge = edges[i];int f1 = find(edge.a), f2 = find(edge.b);if (f1 == f2)continue;ans += edge.c;fa[f1] = f2;}io.out.printf("%.2f", ans);io.out.flush();}
}

試題 F: 數組翻轉

不會,寫了個暴力,應該能騙點分

試題 G: 2 的冪

在這里插入圖片描述
寫了個樸素算法,騙分

試題 H: 研發資源分配

在這里插入圖片描述
直接模擬

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75609.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75609.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75609.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch Tensor維度變換實戰:view/squeeze/expand/repeat全解析

本文從圖像數據處理、模型輸入適配等實際場景出發&#xff0c;系統講解PyTorch中view、squeeze、expand和repeat四大維度變換方法。通過代碼演示對比不同方法的適用性&#xff0c;助您掌握數據維度調整的核心技巧。 一、基礎維度操作方法 1. view&#xff1a;內存連續的形狀重…

Kubernetes nodeName Manual Scheduling practice (K8S節點名稱綁定以及手工調度)

Manual Scheduling 在 Kubernetes 中&#xff0c;手動調度框架允許您將 Pod 分配到特定節點&#xff0c;而無需依賴默認調度器。這對于測試、調試或處理特定工作負載非常有用。您可以通過在 Pod 的規范中設置 nodeName 字段來實現手動調度。以下是一個示例&#xff1a; apiVe…

即時編譯器(JIT)的編譯過程是什么?

1. 觸發編譯 JIT編譯的觸發基于熱點代碼檢測&#xff0c;主要通過兩種計數器&#xff1a; ? 方法調用計數器&#xff1a;統計方法被調用的次數&#xff08;默認閾值&#xff1a;C1為1,500次&#xff0c;C2為10,000次&#xff09;。 ? 回邊計數器&#xff1a;統計循環體的執行…

Java基礎:集合List、Map、Set(超詳細版)

集合體系概述 Collection常用方法 補充&#xff1a;addAll() Collection的遍歷方式 迭代器 增強for&#xff08;空集合可以&#xff0c;null不可以&#xff09; lambda 集合對象存儲對象原理 遍歷方式的區別 List集合 特點、特有方法 遍歷方式 &#xff08;同上&#xff09…

Elasticsearch 全面解析

Elasticsearch 全面解析 前言一、簡介核心特性應用場景 二、核心原理與架構設計1. 倒排索引&#xff08;Inverted Index&#xff09;2. 分片與副本機制&#xff08;Sharding & Replication&#xff09;3. 節點角色與集群管理 三、核心特點1. 靈活的查詢語言&#xff08;Que…

【2】k8s集群管理系列--包應用管理器之helm(Chart語法深入應用)

一、Chart模板&#xff1a;函數與管道 常用函數&#xff1a; ? quote&#xff1a;將值轉換為字符串&#xff0c;即加雙引號 ? default&#xff1a;設置默認值&#xff0c;如果獲取的值為空則為默認值 ? indent和nindent&#xff1a;縮進字符串 ? toYaml&#xff1a;引用一…

JVM 字節碼是如何存儲信息的?

JVM 字節碼是 Java 虛擬機 (JVM) 執行的指令集&#xff0c;它是一種與平臺無關的二進制格式&#xff0c;在任何支持 JVM 的平臺上都可運行的Java 程序。 字節碼存儲信息的方式&#xff0c;主要通過以下幾個關鍵組成部分和機制來實現&#xff1a; 1. 指令 (Opcodes) 和 操作數 …

基于51單片機語音實時采集系統

基于51單片機語音實時采集 &#xff08;程序&#xff0b;原理圖&#xff0b;PCB&#xff0b;設計報告&#xff09; 功能介紹 具體功能&#xff1a; 系統由STC89C52單片機ISD4004錄音芯片LM386功放模塊小喇叭LCD1602按鍵指示燈電源構成 1.可通過按鍵隨時選擇相應的錄音進行播…

關于 Java 預先編譯(AOT)技術的詳細說明,涵蓋 GraalVM 的配置、Spring Boot 3.x 的集成、使用示例及優缺點對比

以下是關于 Java 預先編譯&#xff08;AOT&#xff09;技術的詳細說明&#xff0c;涵蓋 GraalVM 的配置、Spring Boot 3.x 的集成、使用示例及優缺點對比&#xff1a; 1. 預先編譯&#xff08;AOT&#xff09;技術詳解 1.1 核心概念 AOT&#xff08;Ahead-of-Time&#xff09…

【ROS2】行為樹:BehaviorTree

1、簡介 與狀態機不同,行為樹強調執行動作,而不是狀態之間的轉換。 行為樹是可組合的。可以重復使用簡單的行為來構建復雜的行為。 在游戲領域,行為樹已經比較流行了。主要用于維護游戲角色的各種動作和狀態。 ROS2的導航框架Navigation2中引入了行為樹來組織機器人的工作流…

Centos7.9 升級內核,安裝RTX5880驅動

系統鏡像下載 https://vault.centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso 系統安裝步驟省略 開始安裝顯卡驅動 遠程登錄查看內核 [root192 ~]# uname -a Linux 192.168.119.166 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x8…

多層感知機與全連接神經網絡關系解析

感知機&#xff08;Perceptron&#xff09;、多層感知機&#xff08;MLP&#xff0c;Multilayer Perceptron&#xff09;和全連接神經網絡&#xff08;FCNN&#xff0c;Fully Connected Neural Network&#xff09;是神經網絡發展過程中密切相關的概念&#xff0c;但它們有明確…

解析醫療器械三大文檔:DHF、DMR與DHR

醫療器械的 DHF、DMR 和 DHR 是質量管理體系&#xff08;QMS&#xff09;中的核心文件&#xff0c;貫穿產品全生命周期&#xff0c; 確保醫療器械的安全性、有效性和合規性。 一、三大文件的定義與法規依據 縮寫全稱法規依據&#xff08;以 FDA 為例&#xff09;核心目的DHF…

netty啟用websocket的壓縮機制

netty啟用websocket的壓縮機制 package com.aerotop.connector.websocket.base;import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.compression.JZlibDec…

可能存在特殊情況,比如控制臺顯示有延遲、緩沖問題等影響了顯示順序。

從控制臺輸出看&#xff0c;正常邏輯應是先執行 System.out.println(" 未處理異常演示 "); 輸出對應文本&#xff0c;再因 arr 為 null 訪問 length 觸發 NullPointerException 輸出異常信息。可能存在特殊情況&#xff0c;比如控制臺顯示有延遲、緩沖問題等影響…

第一節:React 基礎篇-React虛擬DOM原理及Diff算法優化策略

必考點&#xff1a;虛擬DOM樹對比&#xff08;同級比較、Key的作用、組件類型判斷&#xff09; 延伸&#xff1a;React 18中并發更新對Diff算法的影響 React虛擬DOM原理及Diff算法優化策略 虛擬DOM核心原理 概念&#xff1a; ? 虛擬DOM&#xff08;Virtual DOM&#xff09;…

Java spring mybatis面試題(200道),八股文

Java面試題 通過網盤分享的文件&#xff1a;面試題等2個文件 鏈接: https://pan.baidu.com/s/1Xw0PzkfAmL8uesYBvrW2-A?pwdpebt 提取碼: pebt mybatis相關 1、 什么是Mybatis&#xff1f; … 2 2、 Mybaits 的優點&#xff1a; … 2 3、 MyBatis 框架的缺點&#xff1a; ……

windows使用Python調用7-Zip【按大小分組】壓縮文件夾中所有文件

使用Python調用7-Zip【按大小分組】壓縮文件夾中所有文件 問題描述&#xff1a;方法前提條件任務完整代碼示例代碼如何工作&#xff1f; 問題描述&#xff1a; 我現在想把文件夾下的所有內容上傳到網盤&#xff0c;但是這個文件夾下的素材內容很多&#xff0c;使用分卷壓縮的話…

《Python星球日記》第26天:Matplotlib 可視化

名人說&#xff1a;路漫漫其修遠兮&#xff0c;吾將上下而求索。—— 屈原《離騷》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 訂閱專欄&#xff1a;《Python星球日記》 目錄 一、Matplotlib 簡介1. 什么是 Matplo…

第1章 對大型語言模型的介紹

人類正處在一個關鍵轉折點。自2012年起&#xff0c;基于深度神經網絡的人工智能系統研發進入快速通道&#xff0c;將這一技術推向了新高度&#xff1a;至2019年底&#xff0c;首個能夠撰寫與人類文章真假難辨的軟件系統問世&#xff0c;這個名為GPT-2&#xff08;生成型預訓練變…