Windows 多線程同步機制深度對比:互斥量、事件、臨界區
前言 Windows 提供三種核心同步物件:互斥量、事件、臨界區。它們雖然都能實現線程互斥,但適用場景、性能、功能差異巨大。本文通過「售票」經典案例逐一實測並對
LA 5916 GCD 猜數字遊戲:質數分組貪心策略
問題描述 有一個秘密整數 x (1 ≤ x ≤ n)。每次你可以猜一個數 y: 若 x == y,遊戲結束; 否則返回 gcd(x, y)。 問:最壞情況下
HDU 3187 歐拉函數逆問題:DFS 搜尋滿足 φ(k)=n 的 k 個數
題目轉化 給定 n (n < 2^31),求有多少個正整數 k 滿足 φ(k) = n,其中 k 的不同質因數個數 ≤ 3。φ 為歐拉函數。 數學基礎 若 k
C++ 設計模式深度解析:工廠模式三部曲(簡單、方法、抽象)
前言:為什麼需要工廠模式? 工廠模式屬於創建型模式,核心目的是將對象創建邏輯封裝,讓客戶代碼與具體實現類解耦。根據抽象程度不同,分為三種遞進形式: 簡單工廠:
POJ 1014 多重背包二進制優化:公平分割珠寶價值
題目大意 有價值 1~6 的六種物品,給定各物品數量。判斷能否將所有物品分成兩堆,使總價值相等。物品不可分割,總件數 ≤ 20000。輸入六個 0 結束。 核
經典排序算法實戰:快速、歸並、堆排序與 STL 性能對比
前言 排序算法是計算機科學基石。本文提供快速排序、歸並排序、堆排序的標準 C++ 實現,並對比其在 500 萬隨機整數下的實際運行時間,同時納入 STL mak
HDU 2144 解題報告:並查集結合最長公共子串判斷字串相似度
題目背景與核心思路 HDU 2144 要求判斷多組字串中,哪些字串可以視為「相似」。題目給定一個閾值百分比 p,若兩字串的最長公共子串長度佔各自長度的比例均超過
HDU 3345 BFS 能量傳播:網格最遠距離與狀態剪枝
HDU 3345 BFS 能量傳播:網格最遠距離與狀態剪枝 問題:n×m 網格,起點 Y 初始能量 mv。地形消耗:平地 1,T 消耗 2,R 消耗 3。終點
UVa 10051 Tower of Cubes:DAG 最長路徑與路徑重構
UVa 10051 Tower of Cubes:DAG 最長路徑與路徑重構 問題:n 個立方體,每個 6 面有顏色/數字。疊放規則:上方立方體底面顏色 = 下
POJ 3624 0-1 背包問題:一維 DP 空間優化標準模板
POJ 3624 0-1 背包問題:一維 DP 空間優化標準模板 問題:N 件物品,背包容量 V。物品 i 費用 c[i],價值 w[i]。每件最多取一次,求最
面試必會:階乘尾部零的個數計算(因子分解法)
面試必會:階乘尾部零的個數計算(因子分解法) 問題:給定 n,求 n! 十進制表示末尾連續 0 的個數。 數學原理 末尾 0 來源於因子 10 = 2 × 5
Google 面試經典:丑數查找與三指針動態規劃解法
Google 面試經典:丑數查找與三指針動態規劃解法 定義:並數(Ugly Number)僅包含質因子 2、3、5。習慣 1 是第一個丑數。求第 n 個丑數(如
HDOJ 4503 植樹節:錦標賽圖中循環三元組概率計算
HDOJ 4503 植樹節:錦標賽圖中循環三元組概率計算 問題:完全有向圖(錦標賽圖),n 個節點,任意兩點間有且僅有一條有向邊。給定每個節點的出度 x_i。隨
HOJ 1456 Team Queue:團隊隊列的兩種高效實現
問題描述 有 t 個團隊,每個團隊包含若干成員。支援操作: ENQUEUE x:成員 x 入隊。若其團隊已有成員在隊列中,插入到該團隊最後一名成員之後;否則加
HDU 2145 最短路應用:反向 Dijkstra 解多人競速問題
HDU 2145 最短路應用:反向 Dijkstra 解多人競速問題 問題:有向圖 n 點 k 邊,終點 S 固定。m 個人從不同起點 pos[i] 出發,速度
HOJ 2652 感恩節日期計算:兩種算法對比(模擬法與蔡勒公式)
HOJ 2652 感恩節日期計算:兩種算法對比(模擬法與蔡勒公式) 題目:輸入年份 (1000-9999),輸出該年 11 月第四個星期四的日期(感恩節),格式
HDU 2117:模擬高精度除法求小數點後第 m 位
問題描述 給定整數 n, m,計算 1/n 的小數展開中小數點後第 m 位數字。n ≤ 100000, m ≤ 100000,多組測試數據。 核心思路:手工模
Boost.Bind 嵌套調用深度解析:函數合成與類型轉換陷阱
Boost.Bind 嵌套調用深度解析:函數合成與類型轉換陷阱 在使用 Boost.Bind 進行函數合成時,嵌套綁定(如 bind(f, bind(g)))常