HDU 1016 Prime Ring Problem:回溯法構造質數環
問題描述 1..n (n≤16, 偶數) 排成環,相鄰兩數之和為質數,且首尾相鄰。按字典序輸出所有方案,1 固定在首位。 回溯框架 狀態:當前環 `ring
LeetCode Reverse Words in a String:字符串單詞反轉完整解法
問題描述 給定字符串,按單詞反轉。單詞由非空格字符組成。需處理:首尾空格去除、多空格合併為一。例:the sky is blue → blue is sky t
C++ 編程技巧:vector 高效拼接與常用 STL 技巧
vector 拼接最佳實踐 利用 `insert` 迭代器版本: vector combine(const vector& a, const vector& b
BZOJ 2626 JZPFAR K:KD-Tree 第 K 遠點查詢
問題描述 平面 n (≤100,000) 個點,q (≤100,000) 次詢問:給定點 p 和整數 k,求距離 p 第 k 遠的點的編號。距離為歐氏距離平方。
圖像相似度計算:感知哈希算法原理與 OpenCV 實現
感知哈希算法步驟 縮小:將圖像 resize 到 8×8 = 64 像素,去除細節,保留結構 灰度化:轉為 64 級灰度(或直接用灰度均值) 計算平均值:64
BZOJ 3257 ZJOI 2014 庫侖力計算:FFT 加速 n 體問題
問題描述 n 個點電荷 qi 位於坐標 i (1≤i≤n)。點 i 受合力 Fi = Σj≠i qiqj/(i-j)²(左為正)。求 Fi/qi = Σj≠i
C++ 數據結構:二叉搜索樹完整實現(增刪查遍歷)
BST 定義與性質 二叉搜索樹:左子樹鍵值 < 根 < 右子樹鍵值,左右子樹亦為 BST。支持 O(h) 查找/插入/刪除 (h 為樹高)。 核心操作實現
BZOJ 2194 快速傅里葉變換:卷積計算兩序列相關性
問題描述 給定兩個長度 n 序列 a, b,求 c[k] = Σ a[i]·b[i-k]。這是互相關運算,非標準卷積。 轉化為卷積 令 b 為 b 反序(b[
BZOJ 3563/3569 DZY Loves Chinese:隨機化 + 高斯消元解異或方程組
問題背景 給定無向圖,每次詢問刪除 k 條邊後圖是否連通。BZOJ 3563(Chinese I)有特殊性質可 O(1) 判斷;BZOJ 3569(Chines
LeetCode Word Break:動態規劃 + 遞歸備忘錄
問題描述 給定字符串 s 和詞典 dict,判斷 s 能否拆分為詞典單詞序列。例:s=leetcode, dict=[leet,code] → true。 D
BZOJ 1941 SDOI 2010 Hide and Seek K:KD-Tree 最近/最遠鄰查詢
問題描述 平面 n (≤500,000) 個點,曼哈頓距離。對每個點,求其到所有點的最遠距離與最近距離之差的最小值。 KD-Tree 結構 構建:遞歸按維度
HDU 1166 敵兵布陣:線段樹區間求和與單點增減
問題描述 N (≤50,000) 個營地,初始人數給定。支持 M (≤40,000) 次操作: Add i j:第 i 營地增加 j 人 Sub i j:第 i
HDU 1407/1248 暴力枚舉技巧:三平方和與組合優化
HDU 1407:三平方和分解 對給定 n,找非負整數 x≤y≤z 使 x²+y²+z²=n。n ≤ 10000 左右。 三重循環 + 剪枝: for (int
LeetCode Binary Tree Preorder Traversal:非遞歸前序遍歷
問題描述 給定二叉樹根節點,返回前序遍歷結果(根→左→右)。要求非遞歸實現。 棧模擬遞歸 遞歸本質是系統棧保存調用幀。手動用棧: 1. 根節點入棧 2. 彈出
C++ 遞歸函數詳解:快速排序遞歸實現全解析
遞歸函數核心概念 函數直接或間接調用自身。必須包含: 1. 基線條件:終止遞歸 2. 遞歸步驟:將問題縮小為子問題 快速排序遞歸邏輯 選樞軸(通常取首元素
LeetCode Linked List Cycle II:找環入口節點
問題描述 給定單鏈表,返回環入口節點,無環返回 nullptr。要求 O(1) 空間。 數學原理 設: - 入環前長度 a - 環長 r - 相遇點距入環口
LeetCode Insertion Sort List:鏈表插入排序實現
問題描述 對單鏈表進行插入排序,返回排序後頭節點。要求原地排序。 算法思路 維護一個已排序部分鏈表(虛擬頭節點 dummy),遍歷原鏈表,將每個節點摘下,在已
LeetCode Linked List Cycle:快慢指針判環
問題描述 判斷單鏈表是否有環。要求 O(1) 空間。 快慢指針法 慢指針每次走 1 步,快指針每次走 2 步。若有環,快指針必定在環內追上慢指針(相對速度 1