Linux 用戶態與內核態:特權級、切換機制與系統調用全解析
核心概念 現代作業系統利用 CPU 特權機制將運行環境劃分為兩個層級: 用戶態:特權級最低,受限模式。普通程式碼(如 printf、業務邏輯)在此執行,無法直
HDU 1873 看病排隊:三優先級隊列模擬
題目大意 醫院有 3 位醫生同時看病,病人優先級 1~10(10 最高)。事件兩類: IN A B:病人優先級 B 找醫生 A(A=1..3) OUT A:醫
NYOJ 370 波動序列:從 O(n²) DP 到 O(n) 貪心的解題心路
題目背景與挑戰 NYOJ 370「波動序列」要求在長度 N(N ≤ 30000)且元素互不相同的整數序列中,找出最長的子序列,使其滿足 a0 > a1 &
C++ 代碼評審等級標準:嚴重、一般、提示三級缺陷全解析
評審目的與形式 代碼評審旨在及早發現缺陷、提升質量、促進團隊協作。常見形式包括代碼走讀、結對編程、交叉評審、專家評審等。原則:只發現問題,會議上不討論解決方案。
HDU 1080 Human Gene Functions:基因序列比對與動態規劃
問題背景 給定兩個由 {A, C, G, T} 組成的基因序列,允許插入空格(-)使長度相等,根據評分矩陣計算比對得分,求最大相似度分值。空格與空格不可匹配(權
HDU 1027 Ignatius and the Princess II:全排列第 M 項的 DFS 解法
題目核心 給定 n 和 m,求 1..n 的全排列中第 m 個(按字典序)。由於 8! = 40320 且 m ≤ 10000,只需生成前 8 個數的排列即可覆
UVA 10596 Morning Walk:判斷無向圖歐拉迴路存在性
問題建模 路口 = 點 (0 ~ N-1) 道路 = 無向邊 (允許重邊) 要求:一筆畫走完所有邊恰好一次並回到起點 → 歐拉迴路 歐拉迴路判定定理 (無
格式化字符串漏洞原理與利用深度解析:從信息洩露到任意代碼執行
漏洞成因 當 printf 族函數 (printf, sprintf, snprintf, vprintf 等) 的格式化字符串可被用戶控制,且未提供對應參數時
隊列實現大全:鏈式隊列與循環陣列隊列 C 語言完整代碼
一、鏈式隊列 結構設計 節點 QNode:Element + Next 隊列控制塊 Node:Front (頭結點)、Rear (尾節點) 帶頭結點,空隊列條
HDU 2511 漢諾塔 X:第 m 步移動哪盤從哪柱到哪柱的數學規律解法
問題重述 經典漢諾塔:n 盤(1~n,大小遞增),初始全在柱 1,目標移至柱 3,大盤不壓小盤。求第 m 步移動的是第幾號盤,從哪根柱移到哪根柱。n ≤ 63,
UVA 128 Software CRC:CRC-16 校驗碼計算與十六進制輸出實現
問題背景 給定輸入字符串(以 # 結尾),計算其 CRC-16 校驗值,生成多項式為 x^16 + x^12 + x^5 + 1(十進制 34943)。輸出格式
找出數組中唯一重複元素的三種巧解:求和、位圖、異或
問題描述 數組長度 1001,包含 1~1000 各一次,唯一一個數重複一次。要求:每個元素只能訪問一次,不使用輔助存儲空間,找出重複數。 解法一:數學求和法
樹上三角形判定:LCA + 路徑邊長收集 + 排序檢測完整攻略
問題建模 給定一棵樹(N ≤ 100,000),邊有長度。M 次查詢(M ≤ 100,000),每次給兩點 S, T,毛毛蟲沿最短路徑(即樹上唯一路徑)爬行。問
C++ 基礎數據類型與表達式:字符、符號常量、強制轉換與有符號/無符號交互完整教學
前言 理解 C/C++ 基礎數據類型的內部表示、轉換規則與表達式求值機制,是寫出正確、高效、可移植代碼的基石。本文通過五個經典示例,系統講解字符與整數互轉、大小
POJ 2031 Kruskal 算法求最小生成樹:球體連接問題完整解析
題目模型 三維空間中有 N 個球體(N ≤ 100),每球心座標 (x, y, z) 與半徑 r。任兩球之間的連接成本定義為: 若球體相交或相切(中心距 ≤
NYOJ 221 Tree 進階解法:利用遍歷特性直接構建後序序列
核心思路:拋棄建樹,直接操作字串 傳統解法通常先根據前序與中序遍歷重建二叉樹,再進行後序遍歷輸出。但仔細分析三種遍歷的本質特徵,我們可以完全省去建樹過程,直接對