POJ 2773 Happy 2006:二分查找結合容斥原理解題詳解
題目大意 給定兩個整數 n 和 k,要求找出第 k 個與 n 互質的正整數。 核心思路 這是一道經典的容斥原理結合二分查找的題目。 容斥原理:可以快速計算區
HDU 2586 解題報告:LCA 離線演算法求樹上兩點距離
題目大意 給定 n 個節點、n-1 條邊構成的樹(任意兩點唯一路徑),m 次查詢,每次詢問節點 u, v 之間的距離。 核心公式 設 root 為任意根節點(
8051 單片機動態掃描點亮 8×8 LED 點陣
原理概述 利用 動態掃描(行列掃描) 驅動 8×8 LED 點陣。通過 74HC138 解碼器選行(P1.0~P1.2),P0 口輸出列數據,定時器中斷以 2m
UVa 10603 Fill:三水壺問題 BFS 求最小倒水總量
問題描述 三容器容量 a,b,c,初始 a,b 空、c 滿。目標:使某容器水量恰為 d。每次倒水必須「倒空源」或「倒滿目標」。求最小倒水總量(非次數)。若無法達
UVa 10442 Knights in FEN:5×5 棋盤騎士最短移動 DFS+剪枝
問題描述 給定一個 5×5 棋盤,12 黑棋、12 白棋、1 空格。初始佈局任意,目標佈局固定(見下)。騎士按「日」字移動(8 方向),每步將空格與目標位置棋子
HDU 1863 暢通工程:最小生成樹與並查集實戰
問題描述 經典 最小生成樹(MST) 問題。給定 M 個村莊(節點),N 條可建道路(邊),每條邊有成本。求連通所有村莊的最小總成本;若無法連通輸出 ?。 解
HDU 4334 Trouble:排序優化與雙指針求三數和為零
問題描述 HDU 4334 Trouble 是多校聯合賽(四)第四題。給定五組數據 a1..a5,每組 n 個整數。先將 a1+a2 所有配對和存入 s1,a3
HDU 4336 Card Collector:容斥原理與 DFS 解法詳解
問題背景 HDU 4336 Card Collector 是 2012 年多校聯合賽(四)第六題。題目要求計算集齊所有卡片的期望購買次數,每包卡片的出現機率已知
HDU 4339 Query:線段樹維護字串匹配前綴長度
問題描述 給定兩個等長字串 A, B(長度 ≤ 10⁵)。支援兩種操作: 修改:將 A[pos] 或 B[pos] 改為字符 c 查詢:給定位置 x,求從 x
ZOJ 3524 Crazy Shopping:拓撲排序 + 完全背包 + 雙優化目標
問題描述 n 座山(節點),m 條有向路(邊)。每山有廟,售紀念品:重量 cost[i]、價值 val[i]。背包容量 M。從 st 出發,沿邊移動。背重 w
ZOJ 3527 Shinryaku! Kero Musume:章魚圖上的樹形 DP + 拓撲排序
問題建模 有向圖 n 點 n 邊,每點出度恰為 1。選點獲得信仰值 val[i];若點與其後繼點同時選,信仰值額外改變 g[i](可正可負)。求最大總信仰值。
HDU 1796 解題報告:容斥原理求整除計數
題目大意 給定 n 及大小為 m (≤10) 的非負整數集合。求 1 ~ n 中能被集合中任一數整除的整數個數。n ≤ 2^31。 解題思路:容斥原理 設集合
HDU 2047 阿牛的 EOF 牛肉串:線性遞推與矩陣快速冪優化
問題描述 長度為 n 的字串,字符集 {E, O, F}。限制:不能出現相鄰的 OO。求合法字串總數。n < 40,多測試案例。 狀態定義與遞推 設: sa
C++ Unicode 編碼轉換庫:UTF-8/UTF-16/UTF-32 互轉完整實現
設計目標 提供一個獨立、無依賴的 C++ 類 CUnicodeConverter,實現 UTF-8、UTF-16 (UCS2)、UTF-32 (UCS4) 之間
C 調用 C++ 函數完整指南:extern "C" 與封裝技巧
核心機制:extern C C++ 編譯器對函數名進行名稱修飾(支持重載、命名空間等),而 C 編譯器不修飾。使用 extern C 告訴 C++ 編譯器按 C
ZOJ 3632 Watermelon Full of Water:DP + 線段樹優化
問題抽象 有 n 天,第 i 天可賣西瓜獲利 p_i,或澆水花費 t_i 天(期間無法賣西瓜)。求最大總收益。狀態轉移:dp[i] = max(dp[i-1],
POJ 1422 Air Raid:DAG 最小路徑覆蓋與二分圖匹配
問題建模 有向無環圖(DAG),n 個十字路口,m 條單向路。每個路口最多被一名傘兵經過一次,求覆蓋所有路口的最少傘兵數。即最小路徑覆蓋問題:用最少條不相交路徑
HDU 1711 Number Sequence:KMP 算法模板與應用
問題描述 給定長度為 n 的主串 A 和長度為 m 的模式串 B (n ≤ 10^6, m ≤ 10^4),求 B 在 A 中首次出現的起始位置(1-based