2025牛客寒假算法營2

A題

知識點:模擬

打卡。檢查給定的七個整數是否僅包含?1,2,3,5,6 即可。為了便于書寫,我們可以反過來,檢查這七個整數是否不為?4?和?7。?時間?O(1);空間?O(1)。

?

#include <bits/stdc++.h>
using namespace std;signed main() {bool flag = true;for (int i = 1; i <= 7; i++) {int x;cin >> x;if (x == 4 || x == 7) {flag = false;}}cout << (flag ? "YES" : "NO") << "\n";
}



B題

?

#include <bits/stdc++.h>
using namespace std;signed main() {int n;cin >> n;vector<int> in(n + 1);for (int i = 1; i <= n; i++) {cin >> in[i];}sort(in.begin(), in.end());cout << in[n / 2 + 1] - 1 << "\n";
}



G題

?

#include <bits/stdc++.h>
using namespace std;using i64 = long long;
const i64 inf = 1e18;signed main() {int Task = 1;for (cin >> Task; Task; Task--) {int n, m;cin >> n >> m;i64 Min = 1e18, ans, now = 1;for (int i = 1; i <= 32; i++) {if (now >= inf / m) break;now *= m;if (abs(n - now) < Min) {Min = abs(n - now);ans = i;}}cout << ans << '\n';}
}



F題

?

#include <bits/stdc++.h>
using namespace std;using i64 = long long;signed main() {int Task = 1;for (cin >> Task; Task; Task--) {i64 l, r;cin >> l >> r;cout << (r - l + 1) << "\n";}
}

?




J題

?

?

#include <bits/stdc++.h>
using namespace std;signed main() {int n, h, m;cin >> n >> h >> m;string Date = to_string(h) + "-";if (m < 10) {Date += "0" + to_string(m);}else {Date += to_string(m);}set<string> A, B, C;while (n--) {string user, date, time;cin >> user >> date >> time;if (date.substr(0, 7) != Date) {continue;}string h = time.substr(0, 2);if (h == "07" || h == "08" || time == "09:00:00" ||h == "18" || h == "19" || time == "20:00:00") {A.insert(user);}if (h == "11" || h == "12" || time == "13:00:00") {B.insert(user);}if (h == "22" || h == "23" || h == "00" || time == "01:00:00") {C.insert(user);}}cout << A.size() << " " << B.size() << " " << C.size() << "\n";
}



D題

?

?

#include <bits/stdc++.h>
using namespace std;signed main() {int n;string s;cin >> n >> s;s = "#" + s;int ans = 0;for (int ch = 0; ch < 26; ch++) {int pre = 0, net = 0;for (int i = 1; i <= n; i++) {if (s[i] - 'a' != ch) continue;if (pre != 0) {ans = max(ans, n - i + 1);}pre = i;}for (int i = n; i >= 1; i--) {if (s[i] - 'a' != ch) continue;if (net != 0) {ans = max(ans, i);}net = i;}}cout << (ans == 1 ? 0 : ans) << "\n";
}

代碼的核心思路是針對每個小寫字母,分別正向和反向遍歷字符串,找出該字母至少出現兩次時的最長連續子串長度,最后取所有字母對應的最長長度作為可愛度。不過要注意,此代碼實現與題目要求的可愛度定義可能存在差異,因為它僅考慮了單個字母的情況,而沒有對所有可能的子串和不連續子序列進行檢查。

例子 1

5
ababa
  • 分析過程
    • 代碼開始遍歷每個小寫字母。當?ch?為?'a'?時:
      • 正向遍歷
        • 第一次遇到?'a'?在位置?1,此時?pre?從?0?變為?1
        • 第二次遇到?'a'?在位置?3,此時?pre?不為?0,計算?n - i + 1 = 5 - 3 + 1 = 3,更新?ans?為?3
        • 第三次遇到?'a'?在位置?5,計算?n - i + 1 = 5 - 5 + 1 = 1ans?保持為?3
      • 反向遍歷
        • 第一次遇到?'a'?在位置?5net?從?0?變為?5
        • 第二次遇到?'a'?在位置?3,此時?net?不為?0,計算?i = 3ans?保持為?3
        • 第三次遇到?'a'?在位置?1,計算?i = 1ans?保持為?3
    • 當?ch?為?'b'?時:
      • 正向遍歷
        • 第一次遇到?'b'?在位置?2pre?從?0?變為?2
        • 第二次遇到?'b'?在位置?4,此時?pre?不為?0,計算?n - i + 1 = 5 - 4 + 1 = 2ans?保持為?3
      • 反向遍歷
        • 第一次遇到?'b'?在位置?4net?從?0?變為?4
        • 第二次遇到?'b'?在位置?2,此時?net?不為?0,計算?i = 2ans?保持為?3
    • 最終?ans?為?3,輸出結果為?3

例子 2

3
abc
  • 分析過程
    • 當?ch?為?'a'?時:
      • 正向遍歷:只在位置?1?遇到?'a'pre?變為?1,但由于只出現一次,不會更新?ans
      • 反向遍歷:同理,也不會更新?ans
    • 當?ch?為?'b'?時:
      • 正向遍歷:只在位置?2?遇到?'b',不會更新?ans
      • 反向遍歷:不會更新?ans
    • 當?ch?為?'c'?時:
      • 正向遍歷:只在位置?3?遇到?'c',不會更新?ans
      • 反向遍歷:不會更新?ans
    • 對于其他字母也都只出現一次。最終?ans?為?0,輸出結果為?0

例子 3

4
aaaa
  • 分析過程
    • 當?ch?為?'a'?時:
      • 正向遍歷
        • 第一次遇到?'a'?在位置?1pre?變為?1
        • 第二次遇到?'a'?在位置?2,此時?pre?不為?0,計算?n - i + 1 = 4 - 2 + 1 = 3,更新?ans?為?3
        • 第三次遇到?'a'?在位置?3,計算?n - i + 1 = 4 - 3 + 1 = 2ans?保持為?3
        • 第四次遇到?'a'?在位置?4,計算?n - i + 1 = 4 - 4 + 1 = 1ans?保持為?3
      • 反向遍歷
        • 第一次遇到?'a'?在位置?4net?變為?4
        • 第二次遇到?'a'?在位置?3,此時?net?不為?0,計算?i = 3ans?保持為?3
        • 第三次遇到?'a'?在位置?2,計算?i = 2ans?保持為?3
        • 第四次遇到?'a'?在位置?1,計算?i = 1ans?保持為?3
    • 對于其他字母都未出現。最終?ans?為?3,輸出結果為?3



K題

?

#include <bits/stdc++.h>
using namespace std;
// 定義長整型別名,在某些涉及較大整數運算時可使用
#define i64 long long
// 定義上下左右四個方向在 x 軸上的偏移量
int dx[4] = {-1, 1, 0, 0};
// 定義上下左右四個方向在 y 軸上的偏移量
int dy[4] = {0, 0, -1, 1};// 解決問題的核心函數
void solve() {int n, m;// 讀取矩陣的行數 n 和列數 mcin >> n >> m;// 定義一個字符串向量 s 來存儲矩陣,索引從 1 開始,方便后續處理vector<string> s(n + 1);for (int i = 1; i <= n; i++) {// 讀取每一行的字符串cin >> s[i];// 在每行字符串前添加一個字符 '%',使得字符串索引從 1 開始s[i] = "%" + s[i];}// 用于存儲每個藍色極大連通塊對應的需要敲碎的灰色磚塊數量,初始大小為 m * n + 1vector<int> g(m * n + 1);// 記錄當前藍色極大連通塊的編號int idx = 0;// 二維布爾數組 v,用于標記矩陣中每個位置是否已被訪問過vector<vector<bool>> v(n + 1, vector<bool>(m + 1, false));// 二維數組 num,記錄每個藍色磚塊所屬的藍色極大連通塊編號vector<vector<int>> num(n + 1, vector<int>(m + 1, 0));// 定義一個遞歸的 lambda 函數 dfs,用于深度優先搜索藍色極大連通塊auto dfs = [&](auto &&self, int x, int y, int id) -> void {// 標記當前位置 (x, y) 的藍色磚塊屬于編號為 id 的連通塊num[x][y] = id;// 標記當前位置已被訪問v[x][y] = true;for (int i = 0; i < 4; i++) {// 計算相鄰位置的 x 坐標int nx = dx[i] + x;// 計算相鄰位置的 y 坐標int ny = dy[i] + y;// 檢查相鄰位置是否在矩陣范圍內、未被訪問且為藍色磚塊if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && !v[nx][ny] && s[nx][ny] == '1') {// 遞歸調用 dfs 函數繼續搜索相鄰的藍色磚塊self(self, nx, ny, id);}}};// 遍歷矩陣中的每個位置for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {// 如果當前位置未被訪問且為藍色磚塊if (!v[i][j] && s[i][j] == '1') {// 藍色極大連通塊編號加 1++idx;// 調用 dfs 函數開始搜索該連通塊dfs(dfs, i, j, idx);}}}// 再次遍歷矩陣,統計每個藍色極大連通塊周圍的灰色磚塊數量for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (s[i][j] == '0') {// 用于記錄當前灰色磚塊相鄰的不同藍色極大連通塊編號map<int, bool> ex;for (int k = 0; k < 4; k++) {// 計算相鄰位置的 x 坐標int nx = i + dx[k];// 計算相鄰位置的 y 坐標int ny = j + dy[k];// 檢查相鄰位置是否在矩陣范圍內、為藍色磚塊且該連通塊編號未被記錄過if (nx >= 1 && nx <= n && ny >= 1 && ny <= m && s[nx][ny] == '1' && !ex[num[nx][ny]]) {// 對應連通塊的需要敲碎的灰色磚塊數量加 1g[num[nx][ny]]++;// 標記該連通塊編號已被記錄ex[num[nx][ny]] = true;}}}}}// 對存儲每個連通塊對應灰色磚塊數量的向量 g 進行排序,排序范圍是從索引 1 到 idxsort(g.begin() + 1, g.begin() + idx + 1);// 輸出需要敲碎的最少灰色磚塊數量cout << g[1];
}int main() {// 關閉輸入輸出流的同步,提高輸入輸出效率ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t = 1;// 循環調用 solve 函數,這里 t 為 1,即只調用一次while (t--) solve();return 0;
}

?

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

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

相關文章

記錄一次k8s起不來的排查過程

我在k8s集群&#xff0c;重啟了一個node宿主機&#xff0c;竟然發現kubelet起不來了&#xff01;報錯如下 這個報錯很模糊&#xff0c;怎么排查呢。這樣&#xff0c;開兩個界面&#xff0c;一個重啟kubelet&#xff0c;一個看系統日志(/var/log/message:centos&#xff0c;/va…

Docker Desktop 在Windows 環境中開發、測試和運行容器化的應用程序

Docker 為 Windows 提供了專門的桌面版工具&#xff0c;稱為 Docker Desktop&#xff0c;它允許你在 Windows 環境中開發、測試和運行容器化的應用程序。 如何在 Windows 上使用 Docker Docker Desktop Docker Desktop 是一個專為 Windows 設計的應用程序&#xff0c;它簡化了…

仿 RabbitMQ 的消息隊列3(實戰項目)

七. 消息存儲設計 上一篇博客已經將消息統計文件的讀寫代碼實現了&#xff0c;下一步我們將實現創建隊列文件和目錄。 實現創建隊列文件和目錄 初始化 0\t0 這樣的初始值. //創建隊列對應的文件和目錄&#xff1a;public void createQueueFile(String queueName) throws IO…

HTTP 配置與應用(局域網)

想做一個自己學習的有關的csdn賬號&#xff0c;努力奮斗......會更新我計算機網絡實驗課程的所有內容&#xff0c;還有其他的學習知識^_^&#xff0c;為自己鞏固一下所學知識&#xff0c;下次更新HTTP 配置與應用&#xff08;不同網段&#xff09;。 我是一個萌新小白&#xf…

root用戶Linux銀河麒麟服務器安裝vnc服務

安裝必要桌面環境組件 yum install mate-session-manager -y mate-session #確定是否安裝成功安裝vnc服務器 yum install tigervnc-server -y切換到root為root得vnc設置密碼 su root vncpasswd給root用戶設置vnc服務器文件 vi /etc/systemd/system/vncserver:1.service [Un…

理解深度學習pytorch框架中的線性層

文章目錄 1. 數學角度&#xff1a; y W x b \displaystyle y W\,x b yWxb示例 2. 編程實現角度&#xff1a; y x W T b \displaystyle y x\,W^T b yxWTb3. 常見錯誤與易混點解析4. 小結參考鏈接 在神經網絡或機器學習的線性層&#xff08;Linear Layer / Fully Connect…

C#Object類型的索引,序列化和反序列化

前言 最近在編寫一篇關于標準Mes接口框架的文章。其中有一個非常需要考究的內容時如果實現數據靈活和可使用性強。因為考慮數據靈活性&#xff0c;所以我一開始選取了Object類型作為數據類型&#xff0c;Object作為數據Value字段&#xff0c;String作為數據Key字段&#xff0c…

大模型應用與部署 技術方案

大模型應用與部署 技術方案 一、引言 人工智能蓬勃發展,Qwen 大模型在自然語言處理領域地位關鍵,其架構優勢盡顯,能處理文本創作等多類復雜任務,提供優質交互。Milvus 向量數據庫則是向量數據存儲檢索利器,有高效索引算法(如 IVF_FLAT、HNSWLIB 等)助力大規模數據集相似…

【Prometheus】Prometheus如何監控Haproxy

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

C# 控制打印機:從入門到實踐

在開發一些涉及打印功能的應用程序時&#xff0c;使用 C# 控制打印機是一項很實用的技能。這篇文章就來詳細介紹下如何在 C# 中實現對打印機的控制。 一、準備工作 安裝相關庫&#xff1a;在 C# 中操作打印機&#xff0c;我們可以借助System.Drawing.Printing命名空間&#x…

Go語言中的值類型和引用類型特點

一、值類型 值類型的數據直接包含值&#xff0c;當它們被賦值給一個新的變量或者作為參數傳遞給函數時&#xff0c;實際上是創建了原值的一個副本。這意味著對新變量的修改不會影響原始變量的值。 Go中的值類型包括&#xff1a; 基礎類型&#xff1a;int&#xff0c;float64…

GPT 結束語設計 以nanogpt為例

GPT 結束語設計 以nanogpt為例 目錄 GPT 結束語設計 以nanogpt為例 1、簡述 2、分詞設計 3、結束語斷點 1、簡述 在手搓gpt的時候&#xff0c;可能會遇到一些性能問題&#xff0c;即關于是否需要全部輸出或者怎么節約資源。 在輸出語句被max_new_tokens 限制&#xff0c…

《探秘:人工智能如何為鴻蒙Next元宇宙網絡傳輸與延遲問題破局》

在元宇宙的宏大愿景中&#xff0c;流暢的網絡傳輸和低延遲是保障用戶沉浸式體驗的關鍵。鴻蒙Next結合人工智能技術&#xff0c;為解決這些問題提供了一系列創新思路和方法。 智能網絡監測與預測 人工智能可以實時監測鴻蒙Next元宇宙中的網絡狀況&#xff0c;包括帶寬、延遲、…

深入MapReduce——計算模型設計

引入 通過引入篇&#xff0c;我們可以總結&#xff0c;MapReduce針對海量數據計算核心痛點的解法如下&#xff1a; 統一編程模型&#xff0c;降低用戶使用門檻分而治之&#xff0c;利用了并行處理提高計算效率移動計算&#xff0c;減少硬件瓶頸的限制 優秀的設計&#xff0c…

macOS安裝Gradle環境

文章目錄 說明安裝JDK安裝Gradle 說明 gradle8.5最高支持jdk21&#xff0c;如果使用jdk22建議使用gradle8.8以上版本 安裝JDK mac系統安裝最新&#xff08;截止2024.9.13&#xff09;Oracle JDK操作記錄 安裝Gradle 下載Gradle&#xff0c;解壓將其存放到資源java/env目錄…

五國十五校聯合巨獻!仿人機器人運動與操控:控制、規劃與學習的最新突破與挑戰

作者&#xff1a; Zhaoyuan Gu, Junheng Li, Wenlan Shen, Wenhao Yu, Zhaoming Xie, Stephen McCrory, Xianyi Cheng, Abdulaziz Shamsah, Robert Griffin, C. Karen Liu, Abderrahmane Kheddar, Xue Bin Peng, Yuke Zhu, Guanya Shi, Quan Nguyen, Gordon Cheng, Huijun Gao,…

CVPR 2024 無人機/遙感/衛星圖像方向總匯(航空圖像和交叉視角定位)

1、UAV、Remote Sensing、Satellite Image(無人機/遙感/衛星圖像) Unleashing Unlabeled Data: A Paradigm for Cross-View Geo-Localization ?codeRethinking Transformers Pre-training for Multi-Spectral Satellite Imagery ?codeAerial Lifting: Neural Urban Semantic …

【BQ3568HM開發板】如何在OpenHarmony上通過校園網的上網認證

引言 前面已經對BQ3568HM開發板進行了初步測試&#xff0c;后面我要實現MQTT的工作&#xff0c;但是遇到一個問題&#xff0c;就是開發板無法通過校園網的認證操作。未認證的話會&#xff0c;學校使用的深瀾軟件系統會屏蔽所有除了認證用的流量。好在我們學校使用的認證系統和…

(Java版本)基于JAVA的網絡通訊系統設計與實現-畢業設計

源碼 論文 下載地址&#xff1a; ????c??????c基于JAVA的網絡通訊系統設計與實現(源碼系統論文&#xff09;https://download.csdn.net/download/weixin_39682092/90299782https://download.csdn.net/download/weixin_39682092/90299782 第1章 緒論 1.1 課題選擇的…

kafka學習筆記4-TLS加密 —— 筑夢之路

1. 準備證書文件 mkdir /opt/kafka/pkicd !$# 生成CA證書 openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout ca.key -out ca.crt -subj "/CNKafka-CA"# 生成私鑰 openssl genrsa -out kafka.key 4096# 生成證書簽名請求 (CSR) openssl req -new -key …