C++ 二維數組指針進階:面試題深度解析 (a+1、p1+3、p2-1、sizeof 指針)
題目重現 int a[4][4] = { {1,2,3,4}, {50,60,70,80}, {900,1000,1100,1200},
POJ 3984 迷宮問題:BFS 求最短路徑並輸出路徑 (父節點回溯法)
問題描述 固定 5×5 迷宮,0 為路,1 為牆。從 (0,0) 走到 (4,4),只能上下左右移動,數據保證唯一解。輸出最短路徑座標序列,格式 (r, c)
ZOJ 3820 Building Fire Stations:樹上雙消防站選址 (二分答案 + BFS 直徑)
問題重述 給定一棵 N 節點樹 (N ≤ 200,000),邊長均為 1。需在兩個不同節點建消防站,使任意節點到最近消防站的距離的 最大值 最小。輸出該最小最大
快速排序完整實現:Hoare 分區、隨機化優化與 C++ 模板版
算法核心思想 分治法:選基準 → 分區 (左邊 ≤ 基準 ≤ 右邊) → 遞歸排序左右子陣列。平均 O(n log n),最壞 O(n²) (可用隨機化避免)。
BZOJ 1798 [Ahoi2009] Seq 維護序列:線段樹雙標記 (乘法+加法) 延遲傳播詳解
問題描述 序列初始長度 n ≤ 10^5,支持三種操作: 1) 區間 [a,b] 每個數乘以 c 2) 區間 [a,b] 每個數加 c 3) 查詢區間 [a,b
C++ const 指針完全解析:const int*、int* const、const int* const 區別與用法
核心口訣 「看 * 右邊」:* 右邊有 const → 指針本身不可變 (常量指針); 「看 * 左邊」:* 左邊有 const → 指向的數據不可變 (指向常
C++ 調用約定與名字修飾完整指南 (__cdecl/__stdcall/__fastcall/thiscall)
什麼是調用約定? 調用約定規定了函數調用時:參數入棧順序、棧由誰清理、函數名修飾規則。Visual Studio 默認為 __cdecl,可在項目屬性 C/C+
《算法競賽入門經典》第五章幾何專題:The Other Two Trees 解析與矩陣轉換技巧
題目還原 給定一個平行四邊形,四邊向外各構建一個正方現,已知其中兩個正方形的中心 A、B,求另兩個正方形中心 C、D。 幾何關係推導 設平行四邊形頂點為
Cocos2d-x 整合 minizip 實現 ZIP 解壓功能 (含中文文件名處理)
背景 Cocos2d-x 本身不提供解壓 ZIP 的 API,專案常需下載資源包並解壓。本文記錄如何將 minizip (zlib 貢獻代碼) 整合進 Coco
重啟 C++ 之旅:《C++程序設計教程》學習筆記與心路歷程
緣起:四年開發後的反思 從事基於 MFC、DuiLib 等 GUI 框架的 Windows 應用開發已有四年,也參與過一些開源項目。但每當深入探討 C++ 語言
C++ 鏈表節點刪除與鏈表反轉完整實現指南
前言 鏈表是數據結構中的基礎,掌握節點刪除與鏈表反轉是 C++ 程式設計的必修課。本文將從節點定義出發,詳細講解「刪除第 n 個節點」與「原地反轉鏈表」的正確實
HDU 1785 You Are All Excellent:利用 atan2 函數按向量極角排序
問題背景 HDU 1785「You Are All Excellent」是一道經典的計算幾何入門題。題目描述了一個選拔隊員的場景:原本依據隊員到原點的歐幾里得距
POJ 2763 Housewife Wind - 樹鏈剖分維護邊權路徑查詢/更新
題目大意 樹上 n 節點,邊有權值 (0/1 表示風向)。支援操作: 修改邊權值。 查詢路徑 u-v 上權值為 1 的邊數 (即順風邊數)。 多查詢,起點動
九度 1512 用兩個棧實現隊列 - 模擬隊列操作
題目大意 用兩個棧 S1, S2 實現隊列。支援操作: PUSH X:入隊。 POP:出隊並輸出值,隊列空輸出 -1。 n ≤ 100000 操作。 雙棧
ZOJ How Many Shortest Path - Floyd + 最大流計算最短路條數
題目大意 給定有向圖 (鄰接矩陣,-1 表示無邊),求從 s 到 t 的最短路條數 (邊不重複使用,即邊互斥)。N ≤ 200。 兩步走:最短路 + 最大流
ZOJ 3511 Cake Robbery - 線段樹區間查詢/刪除維護多邊形切割
題目大意 n 邊凸多邊形,切 m 刀 (對角線),保證切割線不相交。每刀切去一塊,問切割過程中出現的最大邊數的子多邊形邊數。 關鍵觀察:按切割大小排序模擬 不
UVA 11770 Lighting Away - Tarjan 強連通分量縮點統計入度為零數
題目大意 有向圖 n ≤ 10000, m ≤ 100000。操作一個節點會觸發連鎖反應,標記該節點及其可達節點。問最少操作幾個節點可標記全圖。 解法:強連通
POJ 1061 青蛙的約會 - 擴展歐幾里得算法解線性同餘方程
題目大意 兩青蛙初始位置 x, y,跳躍步長 m, n,軌道長度 L (環)。同步跳躍,求最小跳躍次數 S ≥ 0 使兩蛙相遇 (位置相同),或判斷永不相遇 (