PKU 2488 A Knight's Journey:騎士周遊問題 DFS 回溯 + 輸出字典序最小路徑
問題描述 在 m × n 棋盤上,騎士從 (1,1) 出發,嘗試走遍所有格子恰好一次(哈密頓路徑)。若存在多解,輸出字典序最小的路徑(按列字母 A,B... 後
Linux/Unix 進程控制:wait/waitpid 與 退出狀態宏(WIFEXITED, WIFSIGNALED, WIFSTOPPED)詳解
背景 父進程通過 wait() 或 waitpid() 回收子進程,獲得 status 整數。該整數編碼了子進程的退出方式(正常退出、信號終止、停止)及相關碼。
圖論基礎:鏈式前向星(池子法)建圖詳解與 C/C++ 實現模板
什麼是鏈式前向星? 又稱鄰接表數組實現或池子法。用兩個數組模擬鏈表: - edge[]:存儲所有邊(to, next, weight, from)。 - hea
POJ 2057 The Lost House:樹上期望 DP + 貪心排序優化子樹遍歷順序
問題描述 給定一棵有根樹,每個葉子節點等概率藏有房子。從根出發搜索,找到房子即停止。走一條邊代價 1(來回為 2)。求找到房子的期望步數。 核心建模:期望 =
iOS 4 中的 Blocks 基礎:語法、閉包特性、參數與實戰應用
什麼是 Blocks? Blocks 是 C 語言的擴展(故 Objective-C、C++ 均可用),允許將代碼塊封裝為對象並傳遞。類似於其他語言的 閉包 或
POJ 2653 Pick-up Sticks:線段相交判定 + Vector 動態維護「最上層」棍子
問題描述 依次拋擲 N 根棍子(線段),每根棍子落下後可能蓋住之前的棍子。若棍子 A 與後來的棍子 B 相交,則 A 被蓋住,不再是「最上層」。最終輸出所有未被
POJ 3581 Sequence:後綴數組 + 二分/倍增技巧求字典序最小三段反轉
問題描述 給定長度為 N 的整數序列,需將其分成三段(兩個切點),分別反轉三段後拼接,使得最終序列字典序最小。輸出該最小序列。 核心觀察 第一段確定:第一段
C++ 核心筆記:指針完全解析(類型、const、數組、多級指針)
指針基礎 定義:指針存儲另一個對象的內存地址。* 解引用,& 取地址。 類型綁定:每個指針關聯一個數據類型,只能指向該類型對象。 string* ps
素數專題:從樸素篩到線性篩、區間篩與最小質因子
概述 本文系統總結四種經典素數篩選算法:樸素篩選(埃拉托斯特尼篩)、線性篩選(歐拉篩)、區間篩選、最小質因子篩選。涵蓋原理、代碼實現、複雜度對比及適用場景。
TJU 2795 The Queen's New Necklaces:Polya 計數與多重集排列
問題背景 有 C 種顏色,第 i 種顏色擁有 K[i] 個珠子。將所有珠子穿成一條項鍊(環狀),每種顏色必須用完所有珠子。求本質不同的染色方案數(旋轉視為相同,
POJ 3270 Cow Sorting:置換循環分解與最小交換代價
問題重述 給定一個長度為 N 的排列,需將其排序為升序。每次可交換任意兩個元素,交換代價為兩數之和。求將序列排序所需的最小總代價。 核心理論:置換循環分解 將
POJ 2184 Cow Exhibition:負權值背包問題的巧妙轉化
問題描述 有 N 隻奶牛,每隻牛擁有兩個屬性值 S(智力)和 F(樂趣),兩值均可為正或負。需選擇一部分牛參加展覽,使得總智力 ΣS ≥ 0 且總樂趣 ΣF ≥
POJ 2312 Battle City:優先隊列 + BFS 求最短路徑
問題背景 這是一道經典的最短路徑問題,背景源自童年遊戲《坦克大戰》。給定一個網格地圖,包含起點 Y、終點 T、空地 E、磚牆 B、河流 S 和鋼鐵 R。坦克只能
32位程序實際可用內存測試:棧768KB、堆1.58GB極限
32位 C/C++ 程序內存極限實測:理論 4GB vs 實際 1.6GB 32位程序虛擬地址空間 4GB (2^32),但實際可用內存遠小於理論值。本文通過實
fork() 函數深度解析:進程創建、內存複製、輸出重定向陷阱
fork() 系統調用全方位解析:從內核機制到用戶態陷阱 fork() 是 Unix/Linux 進程創建的核心系統調用,理解其內存語義、文件描述符繼承、輸出緩
Pantheios - C/C++ 領域最快診斷日誌庫深度解析
Pantheios:C/C++ 領域性能最強診斷日誌庫架構與實踐 Pantheios 是目前 C/C++ 生態中速度最快、功能最全的程序診斷日誌 API 庫。它
C++ 編譯期契約:模板元編程實現靜態約束檢查
C++ 編譯期契約:利用模板元編程在編譯期發現程序錯誤 C++ 編譯器在編譯階段執行語法檢查、常量計算、模板實例化等工作。利用這些特性,我們可以構建編譯期契約,
POJ 2299 Ultra-QuickSort - 歸並排序計算逆序對數
POJ 2299 Ultra-QuickSort 解題報告:最小交換次數 = 逆序對數 問題描述: 對 n (≤500,000) 個互不相同整數進行冒泡排序(優