第十四屆藍橋杯大賽軟件賽國賽C/C++研究生組

研究生C++國賽軟件大賽

    • 題一:混乘數字
    • 題二:釘板上的正方形
    • 題三:整數變換
    • 題四:躲炮彈
    • 題五:最大區間

題一:混乘數字

在這里插入圖片描述

有一點像哈希表:
首先定義兩個數組,拆分ab和n
然后令n = a*b 查看兩個表對應的十進制位數和個數是否相同
還需要定義一個set,用于驗證當前的n是否已經被計算過了
是因為2 * 8== 4 * 4 == 16

#include<bits/stdc++.h>
using namespace std;
set<int> s;//
int StoredAB[10],StoredN[10];//0-9一共10個珠子
int ans;
//驗證
bool test(int n,int a,int b){//初始化兩個數組memset(StoredAB,0,sizeof(StoredAB));memset(StoredN,0,sizeof(StoredN));while(n){StoredN[n%10]++;n/=10;}while(a) StoredAB[a%10]++,a/=10;while(b) StoredAB[b%10]++,b/=10;for(int i=0;i<=9;i++){if(StoredAB[i]!=StoredN[i]) return false;}return true;
}
int main()
{for(int a=1;a<1000000;a++){for(int b = 1;b<1000000;b++){int n = a*b;if(n>1000000) break;if(test(n,a,b)){if(s.find(n)==s.end()){ //沒有set集合當中的話ans++;s.insert(n);}}}}cout<<ans<<endl;return 0;
}

題二:釘板上的正方形

在這里插入圖片描述
在這里插入圖片描述

下面給出的代碼在表示其他正方形定點時用到了三角形的旋轉
在這里插入圖片描述
下面給出代碼:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;int a[10][10] = 
{{1,1,0,1,0,1,1,1,1,1},{1,1,1,0,0,1,1,1,1,0},{1,1,0,0,1,0,1,1,1,1},{1,0,1,1,0,1,1,1,1,0},{1,0,1,0,1,1,1,1,0,0},{1,0,0,1,0,1,0,1,0,1},{1,1,1,1,1,1,1,1,1,0},{0,1,1,1,1,1,1,1,1,0},{0,1,1,0,1,0,1,1,1,1},{1,0,1,0,0,1,0,1,0,0}
};struct edge {int x, y;bool operator <(const edge &e) const {return x * x + y * y < e.x * e.x + e.y * e.y;}
};int main() {set<edge> st;auto test = [&](int i, int j) {if(i < 0 || i >= 10 || j < 0 || j >= 10) return false;return a[i][j] == 1;};for(int i = 0;i < 10;i++) {for(int j = 0;j < 10;j++) {if(a[i][j] != 1) continue;for(int x = i;x < 10;x++) {for(int y = j;y < 10;y++) {if(x == i && y == j) continue;if(a[x][y] != 1) continue;int dx = x - i, dy = y - j;if(test(i + dy, j - dx) && test(i + dx + dy, j + dy - dx)) {st.insert(edge{dx, dy});}}}}}cout << st.size() << endl;
}

題三:整數變換

在這里插入圖片描述

這道題比較簡單 直接給代碼嗷:

#include <iostream>
using namespace std;
int main()
{// 請在此輸入您的代碼int n;cin>>n;int mintues = 0;while(n>0){int temp = n;int sum=0;while(temp>0){sum+=temp%10;temp/=10;}n-=sum;mintues++;}cout<<mintues;return 0;
}

題四:躲炮彈

在這里插入圖片描述

本題有一個點就是他給的距離n是基于數軸上的原點的距離,題意沒有說的很清楚
其他的就是需要向左向右尋找能夠躲避炮彈的點

#include <iostream>
#include <algorithm>
using namespace std;// 判斷m是否安全:不被任何x∈[L, R]整除
bool is_safe(int m, int L, int R) {if (m < L) return true;           // m小于L時安全if (L <= m && m <= R) return false; // m在區間內則不安全for (int d = 1; d * d <= m; ++d) {if (m % d != 0) continue;int a = d;int b = m / d;// 檢查因數對是否在區間內,因數都在區間內,則一定不安全if ((a >= L && a <= R) || (b >= L && b <= R)) {return false;}}return true;
}int main() {int n, L, R;cin >> n >> L >> R;// 檢查原始位置是否安全bool original_safe = true;if (L <= n && n <= R) { // 在區間內,一定不安全original_safe = false;} else {  // 在區間外,通過遍歷因數是否在區間內判斷原始位置是否安全original_safe = true;for (int d = 1; d * d <= n; ++d) {if (n % d == 0) {int a = d, b = n / d;if ((a >= L && a <= R) || (b >= L && b <= R)) {original_safe = false;break;}}}}if (original_safe) {cout << 0 << endl;return 0;}// 候選解A:向左移動到最近的安全位置int candidateA = -1;for (int m = n - 1; m >= 0; --m) {if (is_safe(m, L, R)) {candidateA = n - m;break;}}// 候選解B:向右移動到最近的安全位置int candidateB = -1;for (int m = n + 1; ; ++m) {if (is_safe(m, L, R)) {candidateB = m - n;break;}}// 如果候選解A不存在,則只考慮候選解Bif (candidateA == -1) {cout << candidateB << endl;} else if (candidateB == -1) {cout << candidateA << endl;} else {cout << min(candidateA, candidateB) << endl;}return 0;
}

題五:最大區間

在這里插入圖片描述

/*
使用單調棧求解左右邊界
1.列表項找到左邊界:找到第一個比當前元素小的位置left[i],則Ai能夠作為最小值擴展到left[i]+1位置
2.列表找到右邊界:找出第一個比當前元素小的位置right[i],則Ai能夠作為最小值擴展到right[i]-1位置
這樣Ai作為最小值的最大子數組長度為right[i]-left[i]-1;
*/
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
long long n,a[N],minn;
stack <long long>st;//棧int main( )
{//根據題面得(R-L+1)*a[i]要盡可能大,所以我們可以從l[i]和r[i]下手//我們要求都要比他的區間要r[i]-l[i]-1+1//即可以完成第31行的代碼scanf("%lld",&n);vector <int> l(n,-1);//答案數組1for(int i=0;i<n;i++)scanf("%lld",&a[i]);for(int i=0;i<n;i++){while(!st.empty() && a[st.top()]>=a[i])st.pop( );if(!st.empty())l[i]=st.top( );st.push(i);}//找左邊第一個比他小的元素的下標(注意是下標)while(!st.empty())st.pop( ); //清空棧,避免干擾。vector <int> r(n,n);//答案數組2for(int i=n-1;i>=0;i--){while(!st.empty() && a[st.top()]>=a[i])st.pop( );if(!st.empty())r[i]=st.top( );st.push(i);}//找右邊第一個比他小的元素的下標(注意是下標)for(int i=0;i<n;i++){minn=max(minn,(r[i]-l[i]-1)*a[i]);}printf("%lld",minn);
}

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

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

相關文章

系統與網絡安全------網絡通信原理(2)

資料整理于網絡資料、書本資料、AI&#xff0c;僅供個人學習參考。 物理層解析 物理層概述 物理層是TCP/IP模型的最底層物理層數據傳輸提供穩定的物理連接 物理層功能 定義設備的物理連接的標準和特性&#xff0c;比如接口形狀&#xff0c;大小定義電氣特性&#xff0c;高低…

內容中臺的數字化管理核心是什么?

數字化整合與系統協同 現代企業的內容管理正經歷從分散式架構向數字化整合的范式轉變。通過將內容管理系統與文檔管理技術深度耦合&#xff0c;組織能夠打破數據孤島&#xff0c;實現跨部門、跨平臺的資源互通。例如&#xff0c;基于元數據分類的標準化體系&#xff0c;不僅提…

Python爬蟲第二戰(使用xpath爬取網站數據)

本文是我在學習過程中記錄學習的點點滴滴&#xff0c;目的是為了學完之后鞏固一下順便也和大家分享一下&#xff0c;日后忘記了也可以方便快速的復習。 使用xpath爬取豬八戒網站數據 前言 前言 今天學習的主要是關于Python使用xpath來爬取豬八戒網的網頁知識的理解和應用 #1.獲…

進程同步和進程互斥的區別

如大家所了解的&#xff0c;進程互斥是由互斥資源引起的&#xff0c;即各進程之間共享互斥資源的使用權&#xff0c;這種競爭沒有確定的必然聯系&#xff0c;哪個進程競爭到互斥資源的使用權&#xff0c;則該資源就歸哪個進程使用&#xff0c;從而獲得所需資源的進程就可以獲得…

ArkTS語言基礎之函數

前言 臭寶們終于來到了ArkTS基礎之函數&#xff0c;今天我們來學習一下ArkTS的函數的相關知識&#xff0c;上一節中也有一些函數的基礎知識。 函數聲明 函數聲明引入一個函數&#xff0c;包含其名稱、參數列表、返回類型和函數體,在下面的例子中&#xff0c;我們聲明了一個名…

redis中的hash

Redis中的hash是什么 Hash: 哈希&#xff0c;也叫散列&#xff0c;是一種通過哈希函數將鍵映射到表中位置的數據結構&#xff0c;哈希函數是關鍵&#xff0c;它把鍵轉換成索引。 Redis Hash&#xff08;散列表&#xff09;是一種 field-value pairs&#xff08;鍵值對&#x…

彈簧質點系統(C++實現)

本文實現一個簡單的物理算法&#xff1a;彈簧質點系統&#xff08;Mass-Spring System&#xff09;。這是一個經典的物理模擬算法&#xff0c;常用于模擬彈性物體&#xff08;如布料、彈簧等&#xff09;的行為。我們將使用C來實現這個算法&#xff0c;并結合鏈表數據結構來管理…

領域大模型

領域技術標準文檔或領域相關數據是領域模型Continue PreTrain的關鍵。 現有大模型在預訓練過程中都會加入書籍、論文等數據&#xff0c;那么在領域預訓練時這兩種數據其實也是必不可少的&#xff0c;主要是因為這些數據的數據質量較高、領域強相關、知識覆蓋率&#xff08;密度…

Wincc項目被鎖定無法打開

Wincc項目被鎖定無法打開 解決方法 解決方法 一般這種情況是因為項目打開的時候直接關機導致的。 刪除項目文件夾的ProjectOpened.lck的文件夾即可 然后即可正常打開項目

SpringBoot3筆記

簡介&#xff1a; springboot整合了springframework&#xff0c;整合了許多配置&#xff0c;讓我們能夠快速創建一個以springframework為基礎的項目。 問題&#xff1a; 到目前為止&#xff0c;你已經學習了多種配置Spring程序的方式。但是無論使用XML、注解、Java配置類還是…

DeepSeek和文心一言的區別

文章目錄 1.開發公司&#xff1a;2.應用場景&#xff1a;3.訓練數據&#xff1a;4.模型架構&#xff1a;5.技術特點&#xff1a;6.語言風格&#xff1a;7.開源性&#xff1a;8.界面與用戶體驗&#xff1a; 1.開發公司&#xff1a; DeepSeek 由杭州深度求索人工智能基礎技術研究…

Windows 10 安裝Mysql 8

安裝準備 下載 MySQL Windows ZIP版&#xff08;無安裝程序&#xff09;&#xff1a; 進入官網&#xff1a;https://dev.mysql.com/downloads/mysql/ 選擇 Windows → 下載 ZIP Archive&#xff0c;例如&#xff1a; mysql-8.0.34-winx64.zip 如果你的電腦沒有安裝 VC Redi…

ARM分揀機vs傳統PLC:實測數據揭示的4倍效率差

在蘇州某新能源汽車零部件倉庫&#xff0c;凌晨3點的分揀線上依然燈火通明。8臺搭載ARM Cortex-A72處理器的智能分揀機正在以每秒3件的速度處理著形狀各異的電池包組件&#xff0c;它們通過MES系統接收訂單信息&#xff0c;自主規劃最優路徑&#xff0c;將不同規格的零部件精準…

使用python訪問mindie部署的vl多模態模型

說明 今天使用mindie1.0部署了qwen2_7b_vl模型&#xff0c;測試過程出現一些問題&#xff0c;這里總結下。 問題1&#xff1a;transformers版本太低 報錯信息&#xff1a; [ERROR] [model_deploy_config.cpp:159] Failed to get vocab size from tokenizer wrapper with ex…

vscode 跳轉失敗之c_cpp_properties.json解析

{"configurations": [{"name": "Linux", // 配置名稱&#xff0c;對應當前平臺&#xff0c;VS Code 中可選"includePath": ["${workspaceFolder}/**", // 包含當前工作區下所有文件夾的頭文件&#xff08;遞歸&…

飛速(FS)解決方案驗證實驗室搬遷升級,賦能客戶技術服務

飛速&#xff08;FS&#xff09;解決方案驗證實驗室近日順利完成搬遷升級&#xff0c;標志著飛速&#xff08;FS&#xff09;在解決方案可行性驗證、質量保障以及定制化需求支持方面邁上新臺階&#xff0c;進一步提升了產品競爭力和客戶信任度。 全新升級的實驗室定位為技術驗證…

安裝kerberos認證的cdh環境

1、服務端安裝 1.1 安裝wget yum -y install wget 由于本地已安裝過wget&#xff0c;所以顯示Nothing to do 1.2 進入 home 目錄 cd /home 1.3 下載centos6.7.iso文件&#xff0c;并掛載 wget https://archive.kernel.org/centos-vault/6.7/isos/x86_64/CentOS-6.7-x86_64…

MySQL基礎 [六] - 內置函數+復合查詢+表的內連和外連

內置函數一般要用select調用 內置函數 日期函數 current_date函數 current_date函數用于獲取當前的日期。如下&#xff1a; current_time函數 current_time函數用于獲取當前的時間。如下&#xff1a; now函數 now函數用于獲取當前的日期時間。如下&#xff1a; date函數 dat…

CS內網滲透 - 如何通過冰蝎 Webshell 上線 Weblogic 服務器到 Cobalt Strike 并繞過殺軟檢測(360、火絨)?

目錄 1. 冰蝎連接上 Weblogic 服務器如何上線到 Cobalt Strike 2. 服務器安裝殺毒工具如何繞過殺軟上線到 Cobalt Strike 2.1 殺軟對 Webshell 命令執行的檢測及繞過 2.2 殺軟對 Cobalt Strike 上線木馬的檢測及繞過 2.3 殺軟對這兩方面的限制及綜合繞過 3. 如何生成免殺…

[ctfshow web入門] web10

前置知識 cookie Cookie是網站存儲在瀏覽器中的小數據片段&#xff0c;用于識別用戶、保持登錄狀態或記住偏好設置。 也就是說&#xff0c;我以會員A的身份登錄了網站&#xff0c;網站會發送一段cookie(會員卡)給我&#xff0c;上面寫著會員卡A&#xff0c;下一次我再訪問&am…