第十六屆藍橋杯大賽軟件賽省賽 C/C++ 大學B組 [京津冀]

由于官方沒有公布題目的數據, 所以代碼僅供參考

1.?密密擺放

題目鏈接:P12337 [藍橋杯 2025 省 AB/Python B 第二場] 密密擺放 - 洛谷

題目描述

小藍有一個大箱子,內部的長寬高分別是?200、250、240(單位:毫米),他要用這個大箱子來放一些同樣大小的小盒子,小盒子的外部長寬高分別是?30、40、50(單位:毫米)。小盒子允許從各個方向旋轉(包括可以平放和倒放)。

請問小藍最多可以在一個大箱子里面放多少個小盒子。

?代碼如下:

#include <bits/stdc++.h>
using namespace std;
int solve(int i,int j, int k){return i*j*k;
}
int main() {int ans=solve(200,250,240)/solve(30,40,50);cout<<ans<<endl;return 0;
}

2.??脈沖強度之和

題目描述
在藍橋電子工坊,工程師小藍正在設計一款智能脈沖生成器,用于驅動一種新型設備。該設備的運行依賴于特定的脈沖強度,用正整數 p 表示,其必須滿足以下三個條件:

可由連續 10 個正整數之和組成:即存在一個正整數 k,使得脈沖強度 p=k+(k+1)+(k+2)+?+(k+9)。
各個數位上的數字都相同:例如 1111、22222、333333 等。
數值不超過 20255202:即 1≤p≤20255202。
通過計算所有符合條件的脈沖強度之和,小藍能夠優化設備運行模式。對此,請幫助他計算這一總和。

解題思路:?

1. ?p=k+(k+1)+(k+2)+?+(k+9)? => p=(k+k+9)*10/2=10*k+45

2. 解 p=10*k+45, 看k有沒有解, 就能驗證條件1了

3. 接著驗證p的每一位是否相等

4. 按順序枚舉p, 把所有符合條件的p累加起來

代碼如下:?

#include<bits/stdc++.h>
using namespace std;
const int maxP=20255202;
bool solve(long long p){string s=to_string(p); bool f=false;for(char c:s){if(c!=s[0]){f=true;break;}}return f;
}
int main(){long long ans=0;for(long long k=1;;k++){long long p=10*k+45; if (p > maxP) break;if(!solve(p)) ans+=p;}cout<<ans<<endl;return 0;
}

?3.?25 之和

題目描述

小藍最近對求和很著迷,給定一個正整數?n,他想求從?n?開始的連續?25?個整數的和,即?n+(n+1)+(n+2)+?+(n+24),請幫幫他吧。

輸入格式

輸入一行包含一個正整數?n。

代碼如下:?

#include <bits/stdc++.h>
using namespace std;
int main() {int n; cin>>n;long long ans =25*(n+(n+24))/2; cout<<ans<<endl;return 0;
}

4.??旗幟

小藍要畫一個 LANQIAO 圖形,并把這個圖形做成一個旗幟。圖形的形狀為一個?h×w?的矩形,其中?h?表示圖形的高,w?表示圖形的寬。當?h=5,w=10?時,圖形如下所示:

LANQIAOLAN

ANQIAOLANQ

NQIAOLANQI

QIAOLANQIA

IAOLANQIAO

圖形的規律是:第一行用?LANQIAO?重復填入,第二行開始,每行向左移動一個字符,用?LANQIAO?重復填入。

小藍需要把圖形中的每個字母都剪出來,以粘貼到旗幟上,他想知道,給定圖形的高和寬,圖形中有多少個?A

?代碼如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{int h, w;cin >> h >> w;string s = "LANQIAO";int ans = 0;for (int i = 0; i < h; i++){for (int j = 0; j < w; j++){if (s[(i + j) % 7] == 'A'){ans++;}}}cout << ans<<endl;return 0;
}

5.?數列差分

題目描述:

小藍有兩個長度均為?n?的數列?A={a1?,a2?,?,an?}?和?B={b1?,b2?,?,bn?},將兩個數列作差定義為?C=A?B={c1?=a1??b1?,c2?=a2??b2?,?,cn?=an??bn?}。小藍將對數列?B?進行若干次操作,每次操作可以將數列?B?中的任意一個數更改為任意一個整數。在進行完所有操作后,小藍可以按任意順序將數列?B?重排,之后再計算數列?C。小藍想知道,最少操作多少次可以使得數列?C?中的所有數都為正整數。?

?代碼如下:

#include <bits/stdc++.h>
using namespace std;
int main() {int n; cin>>n; vector<long long> a(n); vector<long long> b(n);for(int i=0;i<n;i++) cin>>a[i];for(int i=0;i<n;i++) cin>>b[i];sort(a.begin(),a.end()); sort(b.begin(),b.end());int i=0; int j=0,ans=0;while(i<n&&j<n){if(a[i]>b[j]){i++;j++;ans++;}else{i++;}}cout<<(n-ans)<<endl;return 0;
}

6.?樹上尋寶

?小藍正在一棵含有?n?個結點的樹的根結點?1?上,他準備在這棵樹上尋寶。結點?i?上有一個物品,價值為?wi?。然而,小藍每次尋寶只能從根節點出發走不超過?k?步,每步只能選擇走?1?條邊或者?2?條邊,之后會自動拾取最終停留的結點上的物品并被傳送回根結點。請求出小藍最終能獲得的物品的總價值。

輸入格式

輸入的第一行包含兩個正整數?n,k,用一個空格分隔。

第二行包含?n?個正整數?w1?,w2?,?,wn?,相鄰整數之間使用一個空格分隔。

接下來?n?1?行,每行包含兩個正整數?ui?,vi?,用一個空格分隔,表示結點?ui??和結點?vi??之間有一條邊。

輸出格式

輸出一行包含一個整數表示答案。

?解題思路:bfs, 定義d[i]: 節點i到根節點的邊數距離, 每步選擇的時候, 能走2就不會走1

?d[i]/2?<=k, d[i]<=2*k

#include <bits/stdc++.h>
using namespace std;
int main() {int n;long long k;cin >> n >> k;vector<long long> w(n+1);for (int i = 1; i <= n; i++) {cin >> w[i];}vector<vector<int>> grap(n+1);for (int i = 0; i < n-1; i++) {int u, v;cin >> u >> v;grap[u].push_back(v);grap[v].push_back(u);}vector<int> d(n+1, -1);stack<int> st;d[1] = 0;st.push(1);while (!st.empty()) {int u = st.top(); st.pop();for (int v : grap[u]) {if (d[v] == -1) {d[v] = d[u] + 1;st.push(v);}}}long long ans = 0;long long maxD = 2 * k;for (int i = 1; i <= n; i++) {if (d[i] != -1 && d[i] <= maxD) {ans += w[i];}}cout << ans << endl;return 0;
}

?7.?破解信息

?在遙遠的未來,星際旅行已經成為常態。宇航員小藍在一次探險任務中,意外發現了一個古老的太空遺跡。遺跡中存放著一個數據存儲器,里面記錄著一段加密的信息。經過初步分析,小藍發現這段信息可以被表示為一個字符串?S,而解密的關鍵,在于找出?S?中字典序最大的回文子序列。

  • 子序列:指從原字符串中抽取若干個字符(可以不連續),按照它們在原字符串中的相對順序排列所形成的新序列。例如,對于字符串?abc,其子序列包括?abcabacbc?和?abc
  • 字典序:指字符串按照字典中的排序規則比較大小的方式。對于兩個字符串,從左到右逐字符比較,先出現較大字符的字符串字典序更大;若比較到某個字符串結束仍未找到不同的字符,則較短的字符串字典序較小。例如,abc?<?abd,而?ab?<?abc

現在,請你從字符串?S?中,找出字典序最大的回文子序列,幫助小藍解開這段來自星際文明的信息。

輸入格式

輸入一行包含一個字符串?S,表示加密的信息。

輸出格式

輸出一行包含一個字符串,表示?S?中字典序最大的回文子序列

解題思路:統計字符串中字典序最大的字符, 然后統計其出現次數。

不管是奇數次和偶數次都是回文的。

#include<bits/stdc++.h>
using namespace std;
int main()
{string s;cin >> s;char a=*max_element(s.begin(),s.end()); int count=0;for(char c:s){if(c==a) count++;} string ans;for(int i=0;i<count;i++){ans+=a;}cout<<ans<<endl;return 0;
}

?8.翻轉硬幣

題目描述

給定?n?行?m?列共?n×m?個硬幣,對于任意一個硬幣,我們將其價值視為與其相鄰(指上、下、左、右相鄰)的硬幣中與其正反相同的硬幣數的平方。

你可以進行任意次操作,每次可以選擇任意一行并將該行的硬幣全部翻轉。

求所有硬幣的價值之和最大可能是多少。

輸入格式

輸入的第一行包含兩個正整數?n,m,用一個空格分隔。

接下來?n?行,每行包含?m?個 0 或 1,表示給定的?n×m?個硬幣。

輸出格式

輸出一行包含一個整數表示答案。

?解題思路:這道題是一道DP題, 但是無所謂啊,我們直接寫暴力(注:追求前7題滿分,最后一題直接打個暴力),欺騙自己AK了

#include <bits/stdc++.h>
using namespace std;
const int dx[4] = {-1, 1, 0, 0};
const int dy[4] = {0, 0, -1, 1};
int main(){int n, m;cin >> n >> m;vector<vector<int>> a(n, vector<int>(m));for(int i = 0; i < n; i++){string s;cin >> s;               for(int j = 0; j < m; j++){a[i][j] = s[j] - '0';}}long long ans = 0;int maxNum = 1 << n;for(int k = 0; k < maxNum; k++){int g[20][20];for(int i = 0; i < n; i++){bool f = (k >> i) & 1;for(int j = 0; j < m; j++){g[i][j] = a[i][j] ^ (f ? 1 : 0);}}long long total = 0;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){int count = 0;for(int d = 0; d < 4; d++){int ni = i + dx[d];int nj = j + dy[d];if(ni >= 0 && ni < n && nj >= 0 && nj < m){if(g[ni][nj] == g[i][j]) {count++;}}}total += (long long)count * count;}}ans = max(ans, total);}cout << ans << endl;return 0;
}

感謝大家的點贊和關注,你們的支持是我創作的動力!

吐槽:難道是上次出題太難了, 這次就....

?

?

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

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

相關文章

Spring 學習筆記之 @Transactional 異常不回滾匯總

使用springboot時&#xff0c;只要引入spring-jdbc/jpa相關的依賴后&#xff0c;在想要啟用事務的方法上加上Transactional注解就能開啟事務&#xff0c;碰到異常就能自動回滾。大大的提高了編碼的便捷性性&#xff0c;同時也不侵入代碼&#xff0c;保持了代碼的簡潔性。 默認情…

React 與 Vue 虛擬 DOM 實現原理深度對比:從理論到實踐

在現代前端開發中&#xff0c;React 和 Vue 作為最流行的兩大框架&#xff0c;都采用了虛擬 DOM&#xff08;Virtual DOM&#xff09; 技術來優化渲染性能。虛擬 DOM 的核心思想是通過 JavaScript 對象模擬真實 DOM&#xff0c;減少直接操作 DOM 的開銷&#xff0c;從而提高頁面…

WordPress AI 原創文章自動生成插件 24小時全自動生成SEO原創文章 | 多語言支持 | 智能配圖與排版

為什么選擇Linkreate AI內容生成插件&#xff1f; ? 全自動化工作流程 - 從關鍵詞挖掘到文章發布一站式完成 ? 多語言支持 - 輕松覆蓋全球市場&#xff08;中/英等多語種&#xff09; ? 智能SEO優化 - 自動生成搜索引擎友好的內容結構 ? AI智能配圖 - 每篇文章自動匹配高質…

GPU加速-系統CUDA12.5-Windows10

誤區注意 查看當前系統可支持的最高版本cuda&#xff1a;nvidia-smi 說明&#xff1a; 此處顯示的12.7只是驅動對應的最高版本&#xff0c;不一定是 / 也不一定需要是 當前Python使用的版本。但我們所安裝的CUDA版本需要 小于等于它&#xff08;即≤12.7&#xff09;因此即使…

IOT項目——DIY 氣象站

開源項目&#xff1a;ESP32 氣象站 作者&#xff1a;GiovanniAggiustatutto 原文鏈接&#xff1a;原文 開源項目&#xff1a;太陽能 WiFi 氣象站 V4.0 作者&#xff1a;opengreenenergy 原文鏈接&#xff1a;原文 DIY 氣象站 簡介1-制版2-物料 溫度設備塔風向標風速計雨量計框…

5G助力智慧城市的崛起——從概念到落地的技術實踐

5G助力智慧城市的崛起——從概念到落地的技術實踐 引言&#xff1a;智慧城市中的“隱形脈絡” 隨著城市化的快速推進&#xff0c;傳統的城市管理方式已經難以滿足人口增長和資源優化的需求。智慧城市的概念應運而生&#xff0c;通過技術創新實現智能化、可持續發展的城市生態…

【Linux】web服務器的部署和優化

目錄 nginx的安裝與啟用--/usr/share/nginx/html默認發布目錄 nginx的主配置文件--/etc/nginx/nginx_conf nginx的端口 nginx默認發布文件--index.html nginx默認發布目錄 nginx的訪問控制 基于IP地址的訪問控制 基于用戶認證的訪問控制 nginx的虛擬主機--/etc/nginx/…

結合五層網絡結構講一下用戶在瀏覽器輸入一個網址并按下回車后到底發生了什么?

文章目錄 實際應用第一步&#xff1a;用戶在瀏覽器輸入 www.baidu.com 并按下回車1. 瀏覽器觸發域名解析&#xff08;DNS查詢&#xff09; 第二步&#xff1a;DNS請求的逐層封裝與傳輸1. 應用層&#xff08;DNS協議&#xff09;2. 傳輸層&#xff08;UDP協議&#xff09;3. 網絡…

深入理解N皇后問題:從DFS到對角線優化

N皇后問題是一個經典的算法問題&#xff0c;要求在NN的棋盤上放置N個皇后&#xff0c;使得它們互不攻擊。本文將全面解析該問題的解法&#xff0c;特別聚焦于DFS算法和對角線優化的數學原理。 問題描述 在NN的國際象棋棋盤上放置N個皇后&#xff0c;要求&#xff1a; 任意兩個…

Java面試場景篇:分布式鎖的實現與組件詳解

互聯網大廠Java求職者面試&#xff1a;分布式鎖的實現與組件 在一場緊張而又充滿挑戰的面試中&#xff0c;Java架構師馬架構正面對著一位經驗豐富的面試官。以下是他們之間關于分布式鎖實現方式及相關問題的對話。 第一輪提問 面試官&#xff1a;請介紹一下分布式鎖的概念。…

關于使用 讀光-文字檢測-DBNet行檢測模型-中英-通用領域,版本問題

關于使用 讀光-文字檢測-DBNet行檢測模型-中英-通用領域&#xff0c;版本問題 pip install modelscopeSuccessfully installed certifi-2025.4.26 charset-normalizer-3.4.1 colorama-0.4.6 idna-3.10 modelscope-1.25.0 requests-2.32.3 tqdm-4.67.1 urllib3-2.4.0 pip insta…

刷刷刷刷刷RCE

云曦歷年考核 25年春開學考 RCCCE 開啟題目進行代碼審計 GET傳參傳入一個參數cmd&#xff0c;但對參數內容給了黑名單進行過濾 $blacklist /bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|"|\>|\<|\%|\$/i; ls、cat等都…

2024江西ICPC部分題解

題目列表 A - Maliang Learning PaintingC - LiarG - Multiples of 5H - ConvolutionJ - Magic MahjongK - Magic Tree A - Maliang Learning Painting 題目來源&#xff1a;A - Maliang Learning Painting 思路分析 這是個簽到題&#xff0c;直接輸出abc即可 #include<b…

Pytorch圖像數據轉為Tensor張量

PyTorch的所有模型&#xff08;nn.Module&#xff09;都只接受Tensor格式的輸入&#xff0c;所以我們在使用圖像數據集時&#xff0c;必須將圖像轉換為Tensor格式。PyTorch提供了torchvision.transforms模塊來處理圖像數據集。torchvision.transforms模塊提供了一些常用的圖像預…

為什么vllm能夠加快大模型推理速度?

vLLM加速大模型推理的核心技術原理可分解為以下關鍵創新點&#xff1a; 一、?內存管理革命&#xff1a;PagedAttention? KV Cache分頁機制? 將傳統連續存儲的KV Cache拆分為非連續內存頁&#xff0c;類似操作系統內存分頁管理&#xff0c;消除內存碎片并實現動態分配。13B…

第十一章 多態

多態是面向對象開發過程中一個非常重要的概念。 11.1 多態概述 11.1.1 什么是多態 多態&#xff08;polymorphism&#xff09;&#xff0c;從字面理解是“多種形態&#xff0c;多種形式”&#xff0c;是一種將不同的特殊行為泛化為當個特殊記號的機制。 多態從實現的角度可劃…

RNN——循環神經網絡

一.基本結構 1.目標&#xff1a;處理序列數據&#xff08;時間序列&#xff0c;文本&#xff0c;語音等&#xff09;&#xff0c;捕捉時間維度上的依賴關系 核心機制&#xff1a;通過隱藏狀態&#xff08;hidden State&#xff09;傳遞歷史信息&#xff0c;每個時間步的輸入包…

性能提升手段--池化技術

看到hadoop代碼里有ByteBufferPool,使用池子來避免頻繁創建、銷毀ByteBuffer,減輕GC壓力,提高性能。 順便總結一下池化技術 一、什么是池化技術??? ??池化(Pooling)?? 是一種資源管理策略,通過??預先創建并復用資源??(如數據庫連接、線程、內存對象等)來提…

數據安全和合規性市場分析

一、什么是數據安全和合規性 在數據安全和合規性方面&#xff0c;存在著一系列重要的法律、法規和行業標準&#xff0c;這些規定了組織如何收集、存儲、處理和保護個人數據及其他敏感信息。企業之所以要遵守這些規定&#xff0c;是出于多方面的考量&#xff0c;既有法律責任&a…

【每日八股】復習計算機網絡 Day4:TCP 協議的其他相關問題

文章目錄 昨日內容復習已經建立了 TCP 連接&#xff0c;客戶端突然出現故障怎么辦&#xff1f;什么時候用長連接&#xff1f;短連接&#xff1f;TCP 的半連接隊列與全連接隊列&#xff1f;什么是 SYN 攻擊&#xff1f;如何避免&#xff1f;TIME_WAIT 的作用&#xff1f;過多如何…