POJ 3254 Corn Fields:狀壓 DP 求合法種植方案數
n×m 矩陣 (≤12×12) 種玉米,相鄰格不可同時種,部分格子禁種。求方案數模 100,000,000。 狀態壓縮 DP 每行狀態用 m 位二進制表示,
HDU 3530 Subsequence:雙單調隊列維護滑動窗口最大最小值差
求最長子段,使最大值與最小值之差在 [m, k] 之間。維護兩個單調隊列:一個遞減存最大值候選,一個遞增存最小值候選。 滑動窗口雙隊列邏輯 右端點 i 入隊
LA 4513 Stammering Aliens:字符串 Hash + 二分長度求至少出現 m 次的最長子串
給定字符串 s,求至少出現 m 次的最長子串長度,及此時起始位置的最大值。字符串長度 ≤ 40000。 算法框架 預計算前綴 Hash:hash[i] =
CodeChef Cleaning Up 題解:交替分配剩餘工作的簡單模擬
n 個工作,m 個已完成。剩餘工作按編號升序,Chef 取第 1,3,5... 個,助手取第 2,4,6... 個。輸出兩人各自的工作列表。 直接模擬 布爾
HDU 3038 How Many Answers Are Wrong:帶權并查集維護區間和關系
給定長度 n 的數列,m 條詢問 a b c 表示區間 [a,b] 和為 c。求矛盾的詢問數量。 帶權并查集建模 將區間和轉化為前綴和關系:sum[b] -
HDOJ 3487 Play with Chain:Splay 树實現區間翻轉與剪切粘貼
維護一條鏈,支持兩種操作: CUT a b c:剪切 [a,b] 區間,插入到第 c 個節點後 FLIP a b:翻轉 [a,b] 區間順序 經典 Spla
NYOJ 630 Problem of IP:IPv4 地址二進制與點分十進制互轉
實現 32 位二進制字符串與點分十進制 IPv4 地址的雙向轉換。 轉換邏輯 二進制 → 十進制:每 8 位一組,按權值 128,64,...,1 累加,輸
HDU 3036 Escape:網格圖多人逃生——二分答案 + 最大流/二分匹配建模
網格地圖中 . 為女生,E 為出口,X 為牆。每秒每人移動一步,每秒每出口僅允許 1 人通過。給定時限 T,判斷所有人能否逃生,能則輸出最短時間。 核心建模:
POJ 1236 Network of Schools:強連通分量縮點求最少啟動學校數
給定有向圖,求:(1) 至少選幾個節點使能到達所有節點;(2) 至少加幾條邊使圖強連通。經典強連通分量(SCC)縮點拓撲圖應用。 解題步驟 Tarjan 算
C/C++ 標準庫:priority_queue 優先隊列使用詳解與自定義比較
std::priority_queue 是容器適配器,默認大頂堆(最大元素在 top)。適用於任務調度、異步處理等需按優先級處理的場景。 關鍵機制 底層容器
HDU 3032 Nim or not Nim?:SG 函數找規律解決變體 Nim 遊戲
經典 Nim 遊戲變體:每回合可從任意堆取任意多石子,或將一堆分成兩堆非空堆。求先手勝負。 SG 函數分析 sg[x]:x 個石子的局面 SG 值 轉移:取
POJ 1270 Following Orders:拓撲排序全解輸出(DFS 回溯)
給定 n 個字符(可能無序)和若干對 a b 表示 a 必須在 b 之前,輸出所有符合條件的拓撲序列。 算法思路 建圖:鄰接矩陣 mapp[26][26],
UVA 11992:線段樹區間更新查詢矩陣最值與求和
將二維矩陣按行展開為一維數組,構建支持區間增量更新、區間賦值更新、區間查詢(最小值、最大值、求和)的線段樹。數據範圍較大,需注意線段樹空間分配與懶標記正確下推。
C++ Primer 學習筆記 56:類與數據抽象——消息處理示例
說明: 本節通過一個消息處理系統的例子,展示如何使用標準庫容器(如 set, map)和函數對象來實現靈活的訂閱/發布機制,體現類與數據抽象的設計思想。 核心
C++ Primer 學習筆記 57:類與數據抽象——管理指針成員的復制控制
引言: 當類包含指針成員時,預設的淺拷貝會導致雙重釋放、內存洩漏等嚴重問題。必須顯式定義「三大件」(拷貝構造、拷貝賦值、析構函數)實現深拷貝或引用計數,確保資源
UVA 1371 Period:二分答案 + DP 判斷字符串分段編輯代價
給定字符串 A(長≤50)和 B,可將 B 分成若干段,每段由 A 經編輯操作得到,代價為各段編輯距離的最大值,求最小可能代價。 解題策略 答案范圍 0~5
CodeChef Nuclear Reactors 題解:進制轉換視角下的粒子分布規律
題目描述:K 個核反應室(0~K-1),粒子轟擊室 0。任意室粒子數超過 N 時觸發反應:1 粒子移至下一室,當前室粒子歸零,連鎖反應直到所有室 ≤ N。求 A
HDU 3401 Trade:單調隊列優化 DP 股票買賣問題
經典單調隊列優化 DP 入門題。第 i 天持有 j 股股票的最大利潤 dp[i][j],轉移方程包含三種操作: 不買不賣:dp[i][j] = max(dp[