HDU 4414 Finding Crosses(DFS 解法完整分析與代碼)
題目大意 給定 N×N 矩陣(3 ≤ N ≤ 50),元素為 o 或 #。定義寬度為 M 的十字架: 由長度 M 的水平線段與垂直線段組成 兩線段在中心點重疊
C++ 系列自學課程第 7 課:陣列完整指南 —— 基於《C++ Primer 第四版》(大學課程自學網同步)
前言 陣列是 C/C++、Java、Pascal 等語言共有的基礎資料結構。簡單來說,陣列是相同資料型別物件的集合。關鍵兩點:相同型別、集合。本課系統講解陣列定
C++ Class 類別完整教學:定義、存取控制、建構函數、多載、統一初始化、成員初始化列表、指標操作與 struct/union 差異
前言 Class(類別)是 C++ 物件導向程式設計的基石。它擴充了「資料結構」的概念:不僅包含資料成員,還能包含函數成員。物件是類別的具體實例化;若類別是「型
C++ 記憶體分配深度解析:new/delete、operator new、allocator、placement new 完整工作流程
前言 C++ 記憶體管理是系統程式設計的核心。本文從 new/delete 表達式切入,層層剖析其底層調用鏈:operator new/delete → all
字典樹(Trie Tree)完整指南:核心原理、三種實作方式、四大經典應用與 AC 代碼模板
前言 字典樹,又稱前綴樹或單詞查找樹,是一種有序樹結構,專門用於高效存儲與查詢字串集合。其核心思想是空間換時間:利用字串的公共前綴合併節點,將查詢複雜度降至 O
C++ 系列自學課程第 8 課:指標與引用深度解析 —— 基於《C++ Primer 第四版》(大學課程自學網同步)
前言 在 C 語言中,指標向來被視為最具挑戰性也最迷人的部分。無論是指標的定義、運算,還是其背後代表的記憶體操作機制,都構成了 C 語言核心的複雜度。指標不僅賦
矩陣乘法演算法全解析:從朴素 O(n³) 到 Strassen O(n²·⁸¹) 與分治遞歸實作
前言 矩陣乘法是線性代數核心運算,廣泛應用於圖形學、機器學習、科學計算等領域。本文系統梳理三種經典演算法:一般矩陣乘法(O(n³))、傳統分治法(仍為 O(n³
C++ 系列自學課程第 8 課:指標與引用深度解析 —— 基於《C++ Primer 第四版》
前言 在 C 語言中,指標向來被視為最具挑戰性也最迷人的部分。無論是指標的定義、運算,還是其背後代表的記憶體操作機制,都構成了 C 語言核心的複雜度。指標不僅賦
HDU 5017 Ellipsoid:模擬退火法求橢球面到原點最短距離
幾何模型與目標函數 橢球面方程:a x² + b y² + c z² + d xy + e xz + f yz = 1。求滿足方程的點 (x,y,z) 到原點距
LeetCode Linked List Cycle:快慢指針 O(1) 空間檢測環
Floyd 判圈算法 快指針每次走兩步,慢指針每次走一步。若有環,快指針必追上慢指針(相遇);若無環,快指針先到達 nullptr。時間 O(n),空間 O(1
BZOJ 3505 CQOI2014 數三角形:組合數學與 GCD 的另一種實現細節
同題異解:細節優化 本題與前文相同,但代碼採用 ++m; ++n; 直接將格點數存入 m,n,簡化邊界計算。組合數計算同樣用 long long 分步相乘除以
LeetCode Best Time to Buy and Sell Stock II:貪心策略捕捉所有上漲段
問題洞察 允許無限次交易,但不能同時持有多筆。最大化利潤等價於收集所有「上漲段」的差價和。只要今天價格高於昨天,就視為昨天買入、今天賣出;否則不操作。 貪心證明
POJ 1631 Bridging Signals:LIS O(n log n) 算法與路徑重構
經典 LIS 優化 維護數組 d[len] 表示長度為 len 的上升子序列的最小結尾值。遍歷原序列 a[i],二分查找在 d 中第一個 ≥ a[i] 的位置
BZOJ 3505 [CQOI2014] 數三角形:組合數學與最大公約數巧解
補集思路 m×n 網格共有 (m+1)*(n+1) 個格點。任選三點構成三角形,總數 C(total, 3)。減去三點共線(退化)的情況即得答案。 共線三點計數
ACdream 1154 Lowbit Sum:數位 DP 與遞推公式 O(log n) 求解
Lowbit 定義與規律 lowbit(x) = x & (-x),即二進制最低位 1 及其後的 0 組成的值。觀察序列: 奇數:lowbit = 1 偶數:
UVA Live 6190 Beautiful Spacing:二分答案 + DP 貪心優化排版
問題抽象 將 N 個單詞(長度 len[i])按順序排入寬度為 W 的行。除最後一行外,每行首尾對齊(第一個詞靠最左,最後一個詞靠最右),詞間至少一空格,可插入
HDU 1255 矩形覆蓋面積:掃描線 + 線段樹 + 離散化經典實戰
問題轉化 求多個矩形覆蓋 ≥2 次的總面積。將每個矩形拆為上下兩條水平邊(掃描線),按 y 座標排序。掃描線從下向上掃過,維護 x 軸上被覆蓋 ≥2 次的總長度
ZOJ 1204 Additive Equations:DFS 枚舉所有加法等式
題目要求 給定 M (≤30) 個互不相同的正整數,找出所有形如 a1+a2+...+ak = b 的加法等式,其中左邊所有數及結果均屬於該集合。輸出按左邊項數