漢諾塔問題:遞歸解法 C++ 實現與步驟詳解
問題描述 經典漢諾塔:三根柱子 A、B、C。A 柱上有 n 個盤子,小上大下。規則: 1. 每次只能移動一個盤子。 2. 大盤子不能壓在小盤子上。 目標:將所有
C++ 基礎概念與學習指南(二):內建型別完整解析
為什麼所有語言都有相似的基本型別? 因為 CPU 硬體直接支援:**整數運算**(ALU)、**浮點運算**(FPU/SSE/AVX)、**邏輯/位運算**、*
Windows x64 組合語言函數調用約定完整指南
背景:x86 vs x64 x86 (32-bit):參數壓棧(右到左),cdecl 調用者清棧,stdcall 被調用者清棧。eax/ecx/edx 易失性
HDU 1425 排序:哈希表計數排序與隨機選擇 K 大數兩種解法
題目大意 輸入 n, m,及 n 個整數(範圍 [-500000, 500000]),輸出前 m 大的數(降序)。多組測資至 EOF。 解法一:哈希表計數排序
Swift 入門(二):陣列與字典完整操作指南
陣列 宣告與初始化 // 方式 1:空陣列再追加 var a1: [String] = [] a1 += aa1 a1 += aa2 a1 += aa3 //
POJ 3080 Blue Jeans:DNA 序列最長公共子串暴力解法
題目大意 給定 m (2≤m≤10) 條 DNA 序列(長度固定 60,字符集 {A,T,G,C}),找出**最長**在所有序列中都出現的子串。若長度 < 3
Linux TOP CPU 占用率原理與實時線程衝突分析
TOP 統計原理 top 讀取 /proc/stat,該檔案在每次讀取時由內核即時更新。統計欄位: user:用戶態 CPU 時間 system:內核態 CP
POJ 3735 Training little cats:矩陣快速冪解決貓咪花生循環操作
題目大意 有 n 隻貓,初始花生數皆為 0。給定 k 個操作組成一組,循環執行 m 次。操作三種: g i:第 i 隻貓 +1 顆花生 e i:第 i 隻貓花
演算法筆記:Kd 樹(K-d Tree)構建、範圍查詢與最近鄰搜尋
問題背景 給定平面上 N 個點,多次查詢:矩形範圍內有多少點?或找離查詢點最近的點?網格劃分在點分佈不均時效率低,Kd 樹根據點密度自適應分割空間。 2D 樹
演算法筆記:區間搜尋樹(Interval Search Tree)完整設計與操作
問題定義 給定一組區間 [lo, hi],支援操作: put(lo, hi, value):插入區間 get(lo, hi):查找完全匹配區間 delete(
C++ 大作業:學籍管理系統 - 專案規格與架構設計
專案概述 開發一套基於控制台的學生學籍管理系統,實現學生資料的增刪改查、課程成績管理、統計報表等核心功能,採用 C++ 面向對象設計,資料持久化至本地檔案。
算法精講:矩形相交判定與掃描線應用(芯片設計EDA起源)
歷史背景:從芯片設計說起 70 年代芯片複雜度激增,催生 EDA 軟件。核心問題之一:如何高效檢測數萬矩形(晶體管/導線)的相交/重疊。這直接推動了計算幾何算法
演算法筆記:哈希函數設計原理、Java 實現與取模陷阱
為什麼需要哈希函數? 紅黑樹查找複雜度 O(log N)。哈希表透過**哈希函數**將鍵映射為整數索引,實現**平均 O(1)** 查找。核心挑戰: 如何計算
BlueJ Code Pad 快速入門:交互式表達式求值工具
什麼是 Code Pad? BlueJ 內置的 **REPL (Read-Eval-Print Loop)** 工具,可即時輸入 Java 表達式/語句並查看結
算法系列:哈希表衝突解決——鏈地址法完整實現與性能分析
核心思想 **鏈地址法** :將哈希值相同的鍵值對存入同一條鏈表。 哈希表 = 數組 Node* buckets[M],每個桶是鏈表頭指針。 完整 Java
POJ 2253 Frogger:最小生成樹 Prim 算法求最小最大跳躍距離
題目大意 n (≤200) 塊石頭,座標 (x,y)。青蛙從 1 號跳到 2 號。 跳躍距離 = 歐氏距離。 路徑的**代價** = 路徑上**最長單次跳躍**
C++ 迭代器失效完整圖譜:vector/list/deque/set/map 等容器操作對迭代器影響總結
為什麼迭代器會失效? 迭代器本質是指向容器內部元素的「廣義指針」。當容器**內存布局發生變化**(擴容遷移、元素移動、節點刪除)時,原迭代器指向的地址可能不再有