藍橋杯 2025 C++組 省 B 題解

可分解的正整數

算法:思維

因為可以有負數 所以除了1以外的任何數都可以構造

當這個數為x構造方法為

-(x-1)? -(x-2)? -(x-3) ....-1 0 1...x-3 x-2 x-1 x

除了x,x以前的數都會被負數抵消

#include <bits/stdc++.h>
#define ll long long
ll a[100005];
using namespace std;
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}ll ans=0;for(int i=1;i<=n;i++){if(a[i]!=1) ans++;}cout<<ans<<"\n";return 0;
}

產值調整

算法:思維 打表

當三個數相同時 不管怎么調整 結果不會發生改變,所以當三個數相同時break即可

根據模擬題目要求打表后發現,調整100次后 所有數都會變成相同的,所以break后不會使代碼超時

#include <bits/stdc++.h>
#define ll long long
ll a[100005];
using namespace std;
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll t;cin>>t;while(t--){ll a,b,c,k;cin>>a>>b>>c>>k;for(int i=1;i<=k;i++){ll na,nb,nc;na=(b+c)/2;nb=(a+c)/2;nc=(a+b)/2;a=na;b=nb;c=nc;if(a==b and b==c) break;}cout<<a<<" "<<b<<" "<<c<<" "<<"\n";}return 0;
}

畫展布置

算法:前綴和
觀察計算公式 需要用到的數皆為平方 提前處理 將每個數平方后 公式將被簡化為 每兩個數之間的差的和 貪心的思考 使得一組數相鄰兩個數之間差的和最小 數組有序為最優 先排序 排序后枚舉開始的位置?求當前位置到當前位置+m位置的差的和 使用前綴和預處理每個位置的前綴和查詢即可。

#include <bits/stdc++.h>
#define ll long long
ll a[100005],b[100005],c[100005];
using namespace std;
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+1+n);for(int i=1;i<n;i++){b[i]=a[i+1]*a[i+1]-a[i]*a[i];}for(int i=1;i<n;i++){c[i]=c[i-1]+b[i];}ll ans=1e18;for(int i=1;i<=n-m+1;i++){ans=min(ans,c[i+m-2]-c[i-1]);}cout<<ans<<"\n";return 0;
}

水質檢測

算法:模擬

按題目要求模擬即可,唯一需要貪心的點,即為

#.
.#

的情況 從左往右判斷時 若要使它們聯通 最優的方案為

##
.#
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);string s[2];cin>>s[0]>>s[1];ll n=s[0].size();s[0]=" "+s[0];s[1]=" "+s[1];ll ans=0;ll l=0,r=0;for(int i=1;i<=n;i++){if((s[0][i]=='#' || s[1][i]=='#') && l==0){l=i;}if((s[0][i]=='#' || s[1][i]=='#')){r=i;}}ll cnt=-1;if(s[0][l]=='.' && s[1][l]=='#') cnt=1;if(s[1][l]=='.' && s[0][l]=='#') cnt=0;for(int i=l+1;i<=r;i++){if(s[0][i]=='.' && s[1][i]=='.'){ans++;}else if(s[0][i]=='#' && s[1][i]=='.'){if(cnt==1){cnt=-1;ans++;}else{cnt=0;}}else if(s[0][i]=='.' && s[1][i]=='#'){if(cnt==0){cnt=-1;ans++;}else{cnt=1;}}else{cnt=-1;}}cout<<ans<<"\n";return 0;
}

生產車間

算法:樹形DP/樹上DP

先考慮這道題 但沒考慮出來 開始蹭分

于是輸出根的權值獲得(洛谷50%)

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll a[1005];
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll n;cin>>n;ll ans=0;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<n;i++) {ll o,p;cin>>o>>p;}cout<<a[1];return 0;
}

裝修報價

方案1:DFS爆搜(30%分)

算法:DFS

為每兩個數字之間遍歷它們是否為異或。如果當前位置為異或,則提前計算,并儲存它們異或后的數字序列。 然后遍歷每個位置是‘+’還是‘-’并計算,加入答案。

#include <bits/stdc++.h>
#define ll long long
ll a[100005];
using namespace std;
const ll MOD = 1e9 + 7;
ll ans=0;ll n;
void dfs2(vector<ll> v){if(v.size()==1){ans+=v[0];ans%=MOD;return;}ll it=v[v.size()-1];v.pop_back();v[0]+=it;dfs2(v);v[0]-=it;v[0]-=it;dfs2(v);
}
void dfs(vector<ll> v,ll x){if(x>n) {dfs2(v);return;}v.push_back(a[x]);dfs(v,x+1);v.pop_back();if(v.size()){ll tp=v[v.size()-1];v[v.size()-1]^=a[x];dfs(v,x+1);v[v.size()-1];}
}
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;vector<ll> d;ll now=0;for(int i=1;i<=n;i++){cin>>a[i];now^=a[i];}dfs(d,1);cout<<ans<<"\n";return 0;
}

方案2:數學 規律 打表(100%分)

時間復雜度:O(n)

每個數字后都存在‘+’和‘-’,無論之后的數字間填寫什么符號,結果都會被抵消,但從第一個位置異或到第i個位置的答案會保留(1<=i<=n)。

位置1異或到3 (1組)
0⊕2⊕5=7
位置1異或到2 (2組)位置3和它之后的都被抵消
0⊕2  +5=7
0⊕2  ?5=?3
位置1 (6組) 位置2和它之后的都被抵消
0  +2⊕5=7
0  ?2⊕5=?70  +2?5=?3
0  ?2+5=30  +2+5=7
0  ?2?5=?7

所以最后的結果為

第一個數字 1組

第一個數字異或到第二個數字 2組

第二個數字異或到第三個數字 6組

第三個數字異或到第四個數字 18組

從第n-1個數字前 每個位置的組數是后一個的三倍 依次遞增求和即可

#include <bits/stdc++.h>
#define ll long long
ll a[100005];
using namespace std;
const ll MOD = 1e9 + 7;
ll ans=0;ll n;
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;vector<ll> d;ll now=0;for(int i=1;i<=n;i++){cin>>a[i];now^=a[i];}ll op=2;ans+=now;now^=a[n];ll tp=0;for(int i=n-1;i>=1;i--){ans+=now*op;ans%=MOD;now^=a[i];op*=3;op%=MOD;}ans%=MOD;ans+=MOD;ans%=MOD;cout<<ans<<"\n";return 0;
}

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

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

相關文章

docker創建容器添加啟動--restart選項

一、通過 Docker 命令直接修改已啟動的容器&#xff08;推薦-已驗證&#xff09; 操作步驟&#xff1a; 1.執行更新命令&#xff1a; docker update --restartalways <容器名或ID>此命令會將容器的重啟策略調整為 always&#xff08;無論容器以何種狀態退出&#xff0…

redission鎖釋放失敗處理

redission鎖釋放失敗處理 https://www.jianshu.com/p/055ae798547a 就是可以刪除 鎖的key 這樣鎖就釋放了&#xff0c;但是 還是要結合業務&#xff0c;這種是 非正規的處理方式&#xff0c;還是要在代碼層面進行處理。

【語音識別】vLLM 部署 Whisper 語音識別模型指南

目錄 1. 模型下載 2. 環境安裝 3. 部署腳本 4. 服務測試 語音識別技術在現代人工智能應用中扮演著重要角色&#xff0c;OpenAI開源的Whisper模型以其出色的識別準確率和多語言支持能力成為當前最先進的語音識別解決方案之一。本文將詳細介紹如何使用vLLM&#xff08;一個高…

Windows Server 2019 安裝 Docker 完整指南

博主本人使用的是離線安裝 1. 安裝前準備 系統要求 操作系統&#xff1a;Windows Server 2019&#xff08;或 2016/2022&#xff09;權限&#xff1a;管理員權限的 PowerShell網絡&#xff1a;可訪問互聯網&#xff08;或離線安裝包&#xff09; 啟用容器功能 Install-Win…

C# 混淆代碼工具--ConfuserEx功能與使用指南

目錄 1 前言1.1 可能帶來的問題 2 ConfuserEx2.1 簡介2.2 功能特點2.3 基本使用方法2.4 集成到MSBuild2.5 深入設置2.5.1 保護機制2.5.1.1 ConfuserEx Protection 2.5.2 精細的代碼保護主要特性1. decl-type(string)2.full-name(string)3. is-public()4. match(string)5. match…

c# 新建不重名的唯一文件夾

在源文件夾內創建唯一目標文件夾 string newFolder GetUniqueFolderName(sourceFolder); Directory.CreateDirectory(newFolder); /// <summary>/// 生成唯一文件夾名稱&#xff08;格式&#xff1a;新建文件夾、新建文件夾1、新建文件夾2...&#xff09;…

3D案例丨多個3D工業相機拼接檢測 開啟360°新視界

在高速生產線上&#xff0c;經常需要在極短的時間內對工件進行全方位的外觀檢測&#xff0c;如&#xff1a;線纜直徑和直線度檢測、鋰電池外觀缺陷檢測、鐵軌截面尺寸檢測等。 這需要傳感器完整還原被測物的截面面輪廓形狀&#xff0c;并獲取精準的截面輪廓數據。但單一相機的…

openapi + knife4j的使用

一、依賴作用與關系 1. springdoc-openapi-starter-webmvc-api ? 核心功能&#xff1a; 基于 OpenAPI 3 規范&#xff0c;自動生成 API 文檔元數據&#xff08;JSON 格式&#xff09;&#xff0c;并集成 Spring MVC。 提供Tag Operation、Schema 等注解&#xff0c;支持通過…

解決電腦問題——突然斷網!

電腦如果突然斷網是怎么回事 電腦突然斷網可能由多種原因造成&#xff0c;以下是常見的因素&#xff1a; 網絡連接與權限問題 路由器或調制解調器故障&#xff1a;路由器或調制解調器可能出現硬件故障、軟件故障或設置錯誤。可以嘗試重啟設備&#xff0c;如果問題依舊&#…

區塊鏈從專家到小白

文章目錄 含義應用場景典型特征 含義 以非對稱加密算法為基礎。 每個**區塊&#xff08;Block&#xff09;**包含&#xff1a; ?交易數據?&#xff08;如轉賬記錄、合約內容&#xff09;。 ?時間戳?&#xff08;記錄生成時間&#xff09;。 ?哈希值?&#xff08;當前區…

git 提交標簽

Git 提交標簽 提交消息格式&#xff1a; <type>: <description> &#xff08;示例&#xff1a;git commit -m "feat: add user login API"&#xff09; 標簽適用場景feat新增功能&#xff08;Feature&#xff09;。fix修復 Bug&#xff08;Bug fix&…

微信小程序:動態表格實現,表頭單元格數據完全從data中獲取,寬度自定義,自定義文本框,行勾選,樣式效果,橫向滾動表格(解決背景色不足的問題)等

一、樣式效果 二、代碼 1、wxml <view class"line flex flex-center"><view class"none" wx:if"{{info.length 0}}">暫無料號</view><view wx:else class"table-container"><!-- 動態生成表頭 -->&…

探索 MCP 和 A2A 協議: 本質上新協議都基于 HTTP的

以下是以 CSDN 博客的形式記錄你對 MCP 協議和 A2A 協議數據傳遞的理解&#xff0c;重點探討了它們為何基于 HTTP 協議、HTTP 的優勢&#xff0c;以及數據傳輸的本質。文章面向技術社區&#xff0c;結構清晰&#xff0c;適合分享。 探索 MCP 和 A2A 協議&#xff1a;為何新協議…

[redis進階一]redis的持久化(2)AOF篇章

目錄 一 為什么有了RDB持久化機制還要有AOF呢 板書介紹具體原因: ?編輯二 詳細講解AOF機制 (1)AOF的基本使用 1)板書如下 2)開啟AOF機制: 3) AOF工作流程 (2)AOF是否會影響到redis性能 ?編輯 (3)AOF緩沖區刷新策略 (4)AOF的重寫機制 板書如下: 為什么要有這個重寫機…

前端防御性編程

關于防御性編程 你是否遇到過&#xff0c;接口請求失敗或者返回數據錯誤&#xff0c;導致系統白屏或者前端自身寫的代碼存在一些缺陷&#xff0c;導致整個系統不夠健壯&#xff0c;從而導致系統白屏 常見的問題與防范 最常見的問題 訪問了null或者undefined的屬性 null.a …

[數據結構]排序 --2

目錄 8、快速排序 8.1、Hoare版 8.2、挖坑法 8.3、前后指針法 9、快速排序優化 9.1、三數取中法 9.2、采用插入排序 10、快速排序非遞歸 11、歸并排序 12、歸并排序非遞歸 13、排序類算法總結 14、計數排序 15、其他排序 15.1、基數排序 15.2、桶排序 8、快速排…

虎躍辦公AI:重構智能辦公的「模型交響樂團」

虎躍辦公AI&#xff1a;重構智能辦公的「模型交響樂團」 ——當全球40大模型在辦公場景中奏響協奏曲 在某科創園區的會議室里&#xff0c;市場總監李薇正用AI生成產品發布會方案&#xff0c;設計團隊同步調校著AI渲染的3D主視覺&#xff0c;法務AI自動掃描著合同風險條款——這…

JdbcTemplate基本使用

JdbcTemplate概述 它是spring框架中提供的一個對象&#xff0c;是對原始繁瑣的JdbcAPI對象的簡單封裝。spring框架為我們提供了很多的操作模板類。例如:操作關系型數據的JdbcTemplate和MbernateTemplate&#xff0c;操作nosql數據庫的RedisTemplate&#xff0c;操作消息隊列的…

vue+leaflet 區域劃分_反向遮罩層

leaflet 區域劃分_遮罩層 geojson在線生成器網址:(https://datav.aliyun.com/portal/school/atlas/area_selector) 點擊前往阿里云geojson生成器 效果圖: 實現下面效果,只需要把addSateLayer函數的調用取消掉就好了. //添加遮罩層代碼function addMask() {var latlngs;var fe…

ESP32開發之ubuntu環境搭建

1. 在Ubuntu官網下載Ubuntu server 20.04版本https://releases.ubuntu.com/20.04.6/ 2. 在vmware下安裝Ubuntu 3. 改Ubuntu靜態IP $ sudo vi /etc/netplan/00-installer-config.yaml# This is the network config written by ‘subiquity’ network: renderer: networkd eth…