POJ 2299 逆序數計算:樹狀數組 + 離散化完整解法
問題描述 給定長度 n (≤ 500,000) 的序列,求其逆序對數量。數值範圍大,需離散化映射到 1..n。 算法流程 讀入數值,保存原始下標。 按數值排
判斷字符串循環移位包含關係的三種高效算法
問題描述 給定字符串 s1、s2,判斷 s2 是否為 s1 某種循環移位 (旋轉) 的子串。即:s2 能否在 s1 的某個循環變體中找到? 方法一:暴力模擬旋
HDU 2196 Computer:樹形 DP 求每節點到最遠節點距離
問題描述 給定一棵 N 節點的有根樹 (根為 1),邊有長度。對每個節點 i,求其到樹中任意其他節點的最大距離 Sᵢ。N ≤ 10000,邊長總和 ≤ 10⁹。
C++ 自由存儲區與 new/delete 運算符詳解
核心概念 自由存儲區 即堆內存。使用 new 創建的對象生存期不受作用域限制,直至顯式 delete 釋放。這與棲棲存儲區 (棧) 自動管理形成對比。 基本用
C/C++ 宏定義完全指南:從基礎到進階技巧
1. 簡單宏定義 格式:#define 識別符 替換列表。預處理器將後續代碼中出現的識別符替換為替換列表。 常見錯誤 #define N = 100 → 替換
HDU 1394 Minimum Inversion Number:樹狀數組與遞推優化
問題描述 給定一個 0 到 n-1 的排列,定義其逆序數為 i a[j] 的對數。現對該排列進行循環左移:將第一個元素移至末尾。求所有 n 種循環移位下的最小
ZOJ 1028 Flip and Shift:黑白球移動奇偶性判定
問題描述 給定一排黑白相間的小球,每次操作允許任意一顆球向左或向右跳躍兩格(即位置下標改變 ±2)。問能否通過有限次操作,使所有同色球連續聚集在一起。 核心觀
計算幾何通用模板庫:二維/三維幾何運算完整實現
概述 本模板庫涵蓋計算幾何核心算法,支援二維與三維幾何對象(點、向量、線段、直線、平面、多邊形、球面)的常見運算,包括向量運算、距離計算、相交判斷、幾何中心求解
pthread 多線程編程基礎範例:創建、同步與退出
簡介 POSIX 線程 (pthread) 是 Linux/Unix 系統下實現多線程並發的標準 API。本文提供一個最小化完整範例,展示線程創建、參數傳遞、主
POJ 2184 Cow Exhibition:背包問題變形深度解析
問題描述 POJ 2184「Cow Exhibition」是一道經典的 0-1 背包變形題。給定 N 隻奶牛,每隻奶牛有兩個屬性:智力值 (Smartness)
2013編程之美全國挑戰賽:競價問題詳解與最優策略分析
問題背景 在2013年編程之美全國挑戰賽中,「競價」是一道極具挑戰性的博弈論題目。Alice 和 Bob 兩人共同競拍商人手中的 N 顆鑽石,商人規定 Alic
FOJ 1607 Greedy Division:數論與貪心結合的因數計數問題
問題描述 給定正整數 n,將 n 平均分成 m 份 (m ≥ 2),即 n = m × k。問: 有多少種分法(即 n 有多少個真因數)? 每種分法中最大的那
編程之美:最大子數組和——暴力枚舉與動態規劃
問題描述 給定長度 N 的整數數組(含正負),找出連續子數組的最大和。例如 [-2, 5, 3, -6, 4, -8, 6] 最大子數組為 [5, 3],和為
HDU 1086 線段相交計數:計算幾何基礎與向量叉積應用
問題描述 給定 n (≤ 100) 條線段,求兩兩相交的線段對數。線段端點座標為浮點數。 計算幾何核心工具:向量叉積 定義 向量 P₁P₀ × P₂P₀ =
HDU 1536 S-Nim 遊戲:SG 函數與組合遊戲理論完整解析
問題描述 經典 Nim 遊戲變體:k 堆石子,每堆 hᵢ 個。每回合玩家從**一堆**中取走石子,取的數量必須屬於預定義集合 S = {s₁, s₂, ...,
HDU 2841 Visible Trees:互質網格點計數與容斥原理 O(n log m) 解法
問題描述 給定座標 (n, m),求滿足 1 ≤ x ≤ n, 1 ≤ y ≤ m 且 gcd(x, y) = 1 的點的個數。即從原點看向第一象限,可見的樹(