HDU 4850 構造長度 n 字符串:任意長度 4 子串互不相同
題目大意 用 26 個小寫字母構造長度 n (≤ 500,000) 的字符串,要求任意長度為 4 的子串互不相同。若不可能輸出 Impossible。 理論上
POJ 1274 COURSES:二分圖最大匹配(匈牙利算法)
題目大意 N 頭奶牛,M 個牛棚。每頭奶牛願意在某些牛棚產奶。每棚最多容納一頭牛,每頭牛最多分一個棚。求最大匹配數。 N,M ≤ 200,經典二分圖最大匹配。
C++ Primer 讀書筆記:多態、虛函數與動態綁定核心機制
1. 虛函數基礎 成員函數前加 virtual 關鍵字聲明為虛函數。目的:允許派生類重新定義,通過基類指針/引用實現運行時多態調用。 2. 派生類與虛函數規則
NYOJ 127 星際之門(一):Cayley 公式計算有標號樹數量
題目大意 N 個星系(節點),用 N-1 條蟲洞(邊)連通。求連通方案數模 10003。 即:N 個有標號節點的樹的數量。 Cayley 公式 N 個有標號節
HDU 1114 Piggy-Bank:完全背包恰好裝滿最小價值(另版本)
題目同 HDU 1114 此處強調「恰好裝滿」初始化區別,並給出背包類型初始化對照表。 核心代碼(同前) int dp[10000]; for (int i
LeetCode Jump Game:貪心 O(n) 判斷能否到達終點
題目大意 數組 A[i] 表示位置 i 最大跳躍步數。初始在索引 0,判斷能否到達最後一個索引。 貪心策略:維護最遠可達位置 遍歷數組,維護 max
LeetCode Combination Sum II:含重複元素組合去重 DFS
題目大意 給定候選數組 candidates(可含重複數字)和目標 target,找出所有不重複的組合使和為 target。每個數字在每個組合中只能使用一次。
Codeforces Round #258 (Div. 2) 題解:A 棒子遊戲、B 數組翻轉排序
A. Game With Sticks (451A) n x m 網格,兩人輪流選一個交叉點,刪除其所在行和列。無法操作者負。先手 Akshat。 每步行數和列
POJ 1061 青蛙的約會:擴展歐幾里得算法求解線性同餘方程
題目大意 兩青蛙初始位置 x, y,每次跳躍 m, n 米,軌道長度 L(模 L 循環)。求最小跳躍次數 t 使兩者相遇:(x + m*t) % L == (y
HDU 1518 Square:火柴棒拼正方形 DFS 剪枝搜索
題目大意 給 M (4≤M≤20) 根火柴棒,長度 1~10000,問能否用所有火柴拼成一個正方形(四邊長度相等)。 DFS 搜索策略 總長度必須能
HDU 2112 HDU Today:map 映射站點名 + Dijkstra 鄰接表優化
題目同 HDU 2112 此處採用 map<string, int> 映射站點名,鄰接表存儲圖,優先隊列優化 Dijkstra。 核心代碼結構
HDU 2473 Junk-Mail Filter:刪除節點並查集實現
題目大意 支持兩種操作: M a b:合併 a 和 b 所在集合。 D a:刪除節點 a(從其集合中移除,形成單獨新集合)。 最終輸出集合數量。n ≤ 1000
LeetCode Word Search:二維網格 DFS 搜索單詞
題目大意 給定 m x n 字符網格和目標單詞,判斷單詞是否能由相鄰單元格(上下左右)順序構成,每個單元格最多使用一次。 DFS + 回溯標記 遍歷
Vim 代碼片段插件 UltiSnips 寫法詳解:從基礎語法到 Python 擴展
UltiSnips 基礎結構 片段文件放置於 ~/.vim/UltiSnips/{filetype}.snippets,命令 :UltiSnipsEdit 快速
HDU 1114 Piggy-Bank:完全背包求恰好裝滿的最小價值
題目大意 存錢罐空重 E、滿重 F,容量 V = F-E。 有 N 種硬幣,每種價值 P[i]、重量 W[i]。 求恰好裝滿容量 V 的最小總價值。若不可能輸出
HDU 2045 LELE的RPG難題:環狀染色遞推公式推導
題目大意 用 3 種顏色給 n 個環狀排列的格子染色,相鄰格子顏色不同,首尾也相鄰。求合法染色方案數。n ≤ 50。 遞推關係推導 設 f[n] 為長度 n