算法筆記上機訓練實戰指南刷題

算法筆記上機訓練實戰指南刷題記錄

文章目錄

  • 算法筆記上機訓練實戰指南刷題記錄
    • 模擬
      • B1001 害死人不償命的(3n+1)猜想
      • B1011 A+B 和 C
      • B1016 部分A+B
      • B1026 程序運行時間
      • B1046劃拳
      • B1008數組元素循環右移問題
      • B1012 數字分類
      • B1018 錘子剪刀布
      • A1042 Shuffling Machine
    • 每天兩題,持續更新中~

模擬

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

題號題目分數
B1001害死人不償命的(3n+1)猜想15??
B1011A+B 和 C15??
B1016部分A+B15??
B1026程序運行時間15??
B1046劃拳15??
B1008數組循環右移問題20??
B1012數字分類20??
B1018錘子剪刀布20??
A1042Shuffling Machine
A1046
B1065
B1010
B1002
B1009

B1001 害死人不償命的(3n+1)猜想

#include <iostream>
using namespace std;
int n, cnt;int main()
{cin >> n;while(n != 1){if(n % 2)n = (3 * n + 1) / 2;elsen /= 2;cnt ++;}cout << cnt << endl;
}

B1011 A+B 和 C

?? A+B可能爆INT。需要開long long。

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

#include <iostream>
using namespace std;
int n;
long long a, b, c;int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a >> b >> c;cout << "Case #" << i << ": " << (a + b > c ? "true" : "false") << endl;}return 0;
}

B1016 部分A+B

思路1:

枚舉DA,DB出現的次數cntDA, cntDB, 計算PA, PB, 輸出PA+PB

A,B用字符串存取,枚舉DA,DB次數可以遍歷A,B字符串。

#include <iostream>
#include <cstring>
using namespace std;
string A, DA, B, DB;
int cntDA, cntDB;
long long resa, resb;
int main()
{cin >> A >> DA >> B >> DB;for(int i = 0; i < A.size(); i ++)cntDA += (A[i] == DA[0]);for(int i = 0; i < B.size(); i ++)cntDB += (B[i] == DB[0]);if(cntDA) resa = DA[0] - '0';if(cntDB) resb = DB[0] - '0';for(int i = 1; i < cntDA; i ++) resa = resa * 10 + (DA[0] - '0');for(int i = 1; i < cntDB; i ++) resb = resb * 10 + (DB[0] - '0');cout << resa + resb << endl;return 0;
}

思路2:

image-20250625195120977

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
LL PA, PB, A, DA, B, DB;;
int main()
{cin >> A >> DA >> B >> DB;while(A){int x = A % 10;if(x == DA) PA = PA * 10 + DA;A /= 10;}while(B){int x = B % 10;if(x == DB) PB = PB * 10 + DB;B /= 10;}cout << PA + PB << endl;return 0;
}

個人推薦思路2,純粹的模擬做法。

B1026 程序運行時間

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

#include <iostream>
using namespace std;
int c1, c2, t;int main()
{cin >> c1 >> c2;// t = (c2 - c1 + 50) / 100;t = c2 - c1;if(t % 100 >= 50) t = t / 100 + 1;else t = t / 100;printf("%02d:%02d:%02d\n", t / 3600, t % 3600 / 60, t % 60);
}

B1046劃拳

failA,failB記錄各自輸的次數

#include <iostream>
using namespace std;
int failA, failB;
int n;int main()
{cin >> n;while(n --){int a1, a2, b1, b2;cin >> a1 >> a2 >> b1 >> b2;if(a1 + b1 == a2 && a1 + b1 != b2) failB ++;if(a1 + b1 == b2 && a1 + b1 != a2) failA ++;}cout << failA << " " << failB << endl;return 0;
}

B1008數組元素循環右移問題

??題目沒有給定M的最大值,不能認為M<N。讀入后需要令M=M%N。

直接輸出N-M到N-1號元素,再輸出0—N - M - 1號元素。

#include <iostream>
using namespace std;
const int N = 110;
int a[N];
int n, m;int main()
{scanf("%d %d", &n, &m);m %= n;for(int i = 0; i < n; i ++)scanf("%d", &a[i]);for(int i = n - m; i < n; i ++)cout << a[i] << " ";for(int i = 0; i < n - m; i ++)cout << a[i] << " \n"[ i == n - m - 1];return 0;
}

B1012 數字分類

#include <iostream>
using namespace std;
const int N = 1010;
int n;
int A1, A2, A3, A4, A5;
int cntA2, cntA4;
int a[N];int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];if(a[i] % 10 == 0) A1 += a[i];if(a[i] % 5 == 1){cntA2 ++;if(cntA2 % 2 == 1) A2 += a[i];else A2 += -1 * a[i];}if(a[i] % 5 == 2) A3 ++;if(a[i] % 5 == 3) A4 += a[i], cntA4 ++;if(a[i] % 5 == 4) A5 = max(A5, a[i]);}double a4 = A4 * 1.0 / cntA4;printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);return 0;
}

B1018 錘子剪刀布

題目要求輸出甲乙獲勝,平局,輸了的次數,還要輸出獲勝最多的手勢。

按照字典序 B布 C錘子 J剪刀 順序布贏錘子,錘子贏剪刀,剪刀贏布,用mp數組存對應的手勢,mp[0] = ‘B’,

times_A[3], times_B[3]分別存甲乙,勝場,平場,輸場次數。hand_A[3]和hand_B[3]存甲乙布,錘子,剪刀勝利次數。

image-20250702202645273

#include <iostream>
using namespace std;char mp[3] = {'B', 'C', 'J'};
int n;
int times_A[3], times_B[3];
int hand_A[3], hand_B[3];
char c1, c2;
int k1, k2;int change(char c)
{if(c == 'B') return 0;if(c == 'C') return 1;if(c == 'J') return 2;
}int main()
{cin >> n;while(n --){cin >> c1 >> c2;k1 = change(c1);k2 = change(c2);if((k1 + 1) % 3 == k2)//甲獲勝{times_A[0] ++;times_B[2] ++;hand_A[k1] ++;}else if(k1 == k2)//平局{times_A[1] ++;times_B[1] ++;}else{times_A[2] ++;times_B[0] ++;hand_B[k2] ++;}}printf("%d %d %d\n", times_A[0], times_A[1], times_A[2]);printf("%d %d %d\n", times_B[0], times_B[1], times_B[2]);int id1 = 0, id2 = 0;for(int i = 0; i < 3; i ++){if(hand_A[i] > hand_A[id1]) id1 = i;if(hand_B[i] > hand_B[id2]) id2 = i;}printf("%c %c\n", mp[id1], mp[id2]);return 0;
}

A1042 Shuffling Machine

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

#include <iostream>
using namespace std;
const int N = 60;
char mp[5] = {'S', 'H', 'C', 'D', 'J'};
int Start[N], End[N], Next[N];
int k;int main()
{cin >> k;for(int i = 1; i <= 54; i ++) Start[i] = i;for(int i = 1; i <= 54; i ++) cin >> Next[i];for(int step = 1; step <= k; step ++){for(int i = 1; i <= 54; i ++){End[Next[i]] = Start[i];}for(int i = 1; i <= 54; i ++){Start[i] = End[i];}}for(int i = 1; i <= 54; i ++){if(i != 1) printf(" ");Start[i] --;printf("%c%d", mp[Start[i] / 13], Start[i] % 13 + 1);}return 0;
}

每天兩題,持續更新中~

另外:自制PAT做題倒計時插件自制 PTA(拼題A)平臺 計時器瀏覽器插件

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

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

相關文章

MYSQL基礎內容

一、介紹 1.不用數據庫&#xff1a;使用IO流對數據進行管理 2.使用數據庫&#xff1a;使用SQL語句對開發的數據進行管理&#xff0c;能儲存上億條數據 3.MYSQL&#xff1a; 是流行的關系型數據庫管理系統之一&#xff0c;將數據保存在不同的數據表中&#xff0c;通過表與表之…

音視頻會議服務搭建(設計方案)-01

前言 最近在做音視頻會議系統服務搭建的工作任務&#xff0c;因為內容過多&#xff0c;我會逐篇分享相關的設計方案、開發思路、編程語言、使用的組件集合等等。如果你也有大型音視頻會議系統搭建架構的需求&#xff0c;希望這些可以對你有所幫助。 EchoMeet 音視頻會議系統架構…

刷leetcode hot100/準備機試--圖

圖的基礎知識【這部分建議使用acm模式】 圖論理論基礎 | 代碼隨想錄 存儲&#xff1a; 一般有鄰接表【適合稀疏圖】【數組 鏈表 】和鄰接矩陣【適合稠密圖】存儲方式 注意鄰接表 和 鄰接矩陣的寫法都要掌握&#xff01; 鄰接矩陣 n個節點&#xff0c;申請n*n或者&#xf…

無代碼自動化測試工具介紹

無代碼自動化測試工具允許用戶無需編寫代碼即可創建和運行測試,通過拖拽式界面或錄制回放等可視化界面進行操作。 這些工具利用圖形用戶界面和預定義命令來創建測試,使非編程人員也能進行自動化測試。 無代碼自動化測試工具使團隊能夠: 使用直觀的拖拽界面開發和執行自動化…

python學習打卡day58

DAY 58 經典時序預測模型2 知識點回顧&#xff1a; 時序建模的流程時序任務經典單變量數據集ARIMA&#xff08;p&#xff0c;d&#xff0c;q&#xff09;模型實戰SARIMA摘要圖的理解處理不平穩的2種差分 n階差分---處理趨勢季節性差分---處理季節性 建立一個ARIMA模型&#xf…

分布式鎖的實現方式:使用 Redisson 實現分布式鎖( Spring Boot )

Redisson提供了分布式和可擴展的Java數據結構&#xff0c;包括分布式鎖的實現。 1. 添加依賴 在pom.xml中添加Redisson依賴&#xff1a; <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId>…

Web基礎關鍵_004_CSS(二)

目 錄 一、樣式 1.行內樣式 2.內部樣式 3.外部樣式 二、選擇器優先級 1.非關系選擇器 2.關系選擇器 三、屬性 四、盒子模型 五、元素 1.塊級元素 2.行內元素 3.行內塊級元素 4.元素類型轉換 六、浮動 七、定位 1.靜態定位 2.相對定位 3.絕對定位 4.固定定位 …

數據使用權與所有權分離:能否誕生“數據租賃”市場

——首席數據官高鵬律師數字經濟團隊創作&#xff0c;AI輔助 數據如礦藏&#xff0c;開采需“契約” 想象一座蘊藏著無盡資源的數字礦山&#xff1a;企業或個人擁有數據的“所有權”&#xff0c;如同手握礦脈的產權&#xff0c;但若無法高效挖掘其價值&#xff0c;礦石終將沉…

【esp32s3】2 - 第一個組件

下面的內容編寫時間跨度有點大&#xff0c;亂了得一團&#xff0c;也沒ai整理。食之無味&#xff0c;棄之可惜。 推薦筆記&#xff1a;ESP32 之 ESP-IDF 教學&#xff08;十八&#xff09;—— 組件配置&#xff08;KConfig&#xff09; 推薦筆記&#xff1a;Kconfig 拓展 樂鑫…

【Java_EE】單例模式、阻塞隊列、線程池、定時器

目錄 單例模式 餓漢模式<代碼> 懶漢模式<代碼> 阻塞隊列 阻塞隊列概念 阻塞隊列解決的問題 阻塞隊列工作原理 阻塞隊列的優/缺點 優點 缺點 模擬實現阻塞隊列<代碼> 線程池 線程池概念 線程池解決的問題 線程池參數 四種拒絕策略 線程池工作…

Redis初識第七期---ZSet的命令和應用場景

ZSet相較于Set來說&#xff0c;它又是有序的&#xff0c;這個有序指的就是我們通常意義上的有序了&#xff0c;ZSet內部中是按照升序來排序的。 排序規則&#xff1a;ZSet相較于Set來說&#xff0c;它內部引入了一個新的屬性&#xff1a;分數&#xff08;Score&#xff09;&am…

Wps開放平臺v5升級v7上傳實體文件踩坑(Java使用restTemplate)

背景&#xff1a; 最近接到一個老項目需求&#xff0c;之前開發的WPS開放平臺文件&#xff08;商密集成&#xff09;預覽功能因為升級需要重新對接api&#xff0c;新的上傳文件接口踩坑特意記錄一下。 這里出問題的是第二步&#xff0c;請求文件上傳信息 踩坑代碼 調用后403 p…

啥時候上RAG?啥時候上微調?丨實戰筆記

哈嘍&#xff0c;大家好&#x1f44f; 我是阿星&#xff01; 現在很多AI科普文章都會提到微調&#xff0c;RAG。 但是沒有實戰的過的同學可能會問&#x1f914;—— 啥時候用RAG&#xff1f;啥時候用微調呢&#xff1f;有啥區別&#xff1f;不都是讓模型增加知識面的嗎&…

RabbitMQ-基礎篇

前言&#xff1a; 今天開始學RabbitMQ,還是跟著黑馬的課程。 今日所學&#xff1a; RabbitMQ介紹RabbitMQ入門Java客戶端中的MQ 1.RabbitMQ介紹 1.1 什么是RabbitMQ RabbitMQ 是一個開源的消息代理軟件&#xff08;消息隊列中間件&#xff09;&#xff0c;實現了高級消息…

docker-compose配置redis哨兵詳細步驟和配置文件

docker-compose配置redis哨兵詳細步驟和配置文件 目錄結構調整 redis-cluster/ ├── config/ │ ├── master.conf # 主節點配置 │ ├── slave1.conf # 從節點1配置 │ ├── slave2.conf # 從節點2配置 │ ├── sentinel1.…

多模態大語言模型arxiv論文略讀(146)

Exploring Response Uncertainty in MLLMs: An Empirical Evaluation under Misleading Scenarios ?? 論文標題&#xff1a;Exploring Response Uncertainty in MLLMs: An Empirical Evaluation under Misleading Scenarios ?? 論文作者&#xff1a;Yunkai Dang, Mengxi G…

【教程】Linux中限制用戶可以使用的GPU數量 | 附腳本

轉載請注明出處&#xff1a;小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你&#xff0c;歡迎[點贊、收藏、關注]哦~ 目錄 背景說明 設置方法 管理腳本 進階限制 恢復默認組 注意事項 背景說明 比較簡單的方式是使用group來管理權限&#xff0c;這種方式能限制哪些…

90.xilinx復位低電平(一般使用低電平復位)

Xilinx FPGA 中的寄存器&#xff08;Flip-Flop&#xff09;**確實支持異步復位**&#xff0c;但具體實現方式取決于你使用的設計方法&#xff08;HDL 代碼風格或原語實例化&#xff09;。以下是詳細說明&#xff1a; --- ### 1. **Xilinx 寄存器的復位特性** - **同步復位…

NVMe高速傳輸之擺脫XDMA設計10: DMA 控制單元設計

DMA 控制單元負責控制 DMA 傳輸事務&#xff0c; 該單元承擔了 DMA 事務到 NVMe 事務的轉換任務&#xff0c; 使用戶對數據傳輸事務的控制更加簡單快捷。 DMA 控制功能由 DMA寄存器組實現。 DMA 寄存器組包含 DMA 操作寄存器、 DMA 長度寄存器、 DMA 源目的地址寄存器和 DMA 狀…

如何設置電腦定時休眠?操作指南詳解

長時間運行電腦會導致硬件過熱&#xff0c;縮短其使用壽命。定時關機有助于讓硬件得到休息&#xff0c;降低因長時間高負荷工作導致損壞的風險。 它的界面簡潔直觀&#xff0c;功能卻十分實用&#xff0c;涵蓋了定時關機、重啟、注銷、休眠、待機以及鎖定等多種操作。 以設置“…