字符串與數字反轉輸出三大經典算法:遞歸、棧與雙指針實現
場景一:無符號整數反序輸出——遞歸法 利用遞歸「先遞後歸」特性,先處理高位,再輸出低位,自然實現反序。 void reverse_print(unsigned
CF 292C Beautiful IP Addresses:回文串枚舉與 IP 切片構造
題目大意 給定 n (≤ 6) 個互不相同的數字 a₁..aₙ。構造所有滿足條件的 IP 地址: 去掉 . 後形成的字串是回文。 每個給定數字至少出現一次,且
LA 3882 And Then There Was One:约瑟夫環變體的 O(n) 數學解法
題目大意 n 個數字 1..n 順時針排成圓圈。第一次刪除第 m 個數,之後每次順時針數 k 個刪除一個,直到剩最後一個數。求該數字。 約束:2 ≤ n ≤ 1
Java 多線程並發遍歷二叉樹:ThreadPoolExecutor 實戰與效能分析
前言 二叉樹遍歷是資料結構教科書的必修內容,但單線程遞歸/迭代在多核 CPU 上無法發揮並行優勢。本文展示一個基於 ThreadPoolExecutor 的並發
HDU 1875 暢通工程再續:幾何圖上的條件限制最小生成樹
題目大意 給定 n ≤ 100 個點的平面座標,任兩點間可建道路,長度為歐氏距離。但只有長度在 [10, 1000] 區間內的邊才能建設。求使所有點連通的最小總
HDU 1863 畅通工程:Prim 演算法求最小生成樹與圖不連通判斷
題目大意 給定 n 個城市(節點)和 m 條潛在道路(邊),每條道路有建設成本。要求選擇道路使所有城市連通且總成本最小。若無法連通所有城市,輸出 ?。多組測資,
HDU 4416 好文章好句子:後綴自動機 (SAM) 解題詳解
題目大意 給定一個主字串 S 以及 n 個查詢字串 T₁, T₂, ..., Tₙ。請計算 S 中有多少個本質不同的子串,滿足:它不是任意一個 Tᵢ 的子串。
C# 隱式轉換陷阱:使用者定義轉換必須涉及封閉類型
問題背景 在進行類型隱式轉換時,編譯器拋出經典錯誤:「使用者定義的轉換必須是轉換成封閉類型,或者從封閉類型轉換」。這錯誤常讓開發者困惑,特別是涉及泛型集合(如
C++ static 關鍵字完整解析:從靜態變數到單例模式的核心應用
前言 在 C++ 程式設計中,static 是一個極具彈性且常被誤解的關鍵字。它不僅影響變數的生命週期與連結屬性,更深刻地定義了類別成員的共享機制與存取語意。本
Linux C 開發:getline() 函數完整指南 - 從文件逐行讀取到網卡信息解析實戰
函數原型與特性 #define _GNU_SOURCE #include ssize_t getline(char **lineptr, size_t *n
快速判斷兄弟字符串(異位詞):字符頻次統計法 O(n) 完美解決
問題描述 判斷兩字符串是否為「兄弟字符串」(異位詞/Anagram):字符種類與次數完全相同,順序可不同。如 bad 和 adb。 最優解法:定長頻次數組 O
ZOJ 1006 Do the Untwist - 解密算法:模運算逆運算還原明文
問題描述 加密公式:cipher[i] = (plain[k*i mod n] - i) mod 28。已知密文、k、n,求明文。字符集:_=0, a~z=1~
C++ 虛函數默認參數陷阱:靜態綁定導致派生類默認值被忽略
核心結論 虛函數的默認參數按靜態類型(編譯時類型)綁定。通過基類指針/引用調用派生類虛函數時,**使用基類聲明的默認值**,而非派生類定義的默認值。 代碼演示
NYOJ 16 矩形嵌套 - 區間 DP / LIS 變體求最長嵌套鏈
問題描述 給定 n 個矩形(長、寬),可旋轉 90°(即交換長寬)。矩形 A 能嵌套進 B ⇔ A 的長 < B 的長 **且** 寬 < B 的寬。求最長嵌套
C++ 構造函數調用等價性:T t(2) vs T t = 2 vs T t = T(2) 深度解析
結論先行 對於**非 explicit** 的單參數構造函數,三者**完全等價**,均調用轉換構造函數 T(int),不調用拷貝/移動構造函數(編譯器優化:複製
HDU Anagram - 全排列去重 + 字典序輸出(STL next_permutation 完美解決)
問題描述 給定字符串(長度 <13,大小寫敏感),輸出所有不重複全排列,按字典序升序(大寫先於小寫:A<a<B<b...)。 核心難點 字
HDU 1811 Rank of Tetris - 並查集 + 拓撲排序判斷關係確定性
問題描述 給定 N 個對象,M 條關係(A > B、A < B、A = B),判斷能否確定唯一拓撲序: OK:唯一確定 UNCERTAIN:條件不