牛客劍指 Offer:查找字符串中第一個只出現一次的字符下標
題目描述 給定一個字符串,找到第一個只出現一次的字符的下標(從 0 開始)。若不存在,返回 -1。字符串長度範圍 1~10000。 解題思路:雙向掃描法 對於
LeetCode 205. 同構字符串:雙哈希表解法詳解
題目描述 給定兩個字符串 s 和 t,判斷它們是否同構。同構定義為:s 中的字符可以被替換得到 t,所有相同字符必須映射到同一字符,且不同字符不能映射到同一字符
字符串樸素匹配算法的 C++ 實現與解析
算法概述 樸素字符串匹配(Naive String Matching)是最直觀的模式匹配算法。其核心思想是:在主串的每一個位置嘗試與模式串逐字符比對,一旦發現不
C++ STL 中 hash_map 完整指南:哈希函數、比較函數與自定義類型應用
引言 在 C++ STL 中,hash_map 是一個高效的關聯式容器,以鍵值對形式存儲數據,並通過哈希函數實現常數級別的平均查找、插入與刪除操作。不同於 ma
HNU Number Guessing:猜數字遊戲邏輯推理
題目大意 電腦生成 4 個不重複數字(0-9)。玩家猜測,電腦返回 xAyB:A 為位置值均正確的個數,B 為值正確但位置錯誤的個數。給定若干猜測記錄,推導出唯
NYOD 832 合並遊戲:狀態壓縮 DP
題目大意 n 個石子(n ≤ 10),給定 n×n 矩陣 A[i][j] 表示合並石子 i 和 j 獲得的金幣(j 消失)。求合並所有石子(剩 1 個)的最大金
POJ 3661 Running:動態規劃狀態機模型
題目大意 奶牛跑步 n 分鐘,疲勞度上限 m。每分鐘可選跑或休息: 跑:疲勞度 +1,跑 v[i] 米。 休息:疲勞度每分鐘 -1,必須連續休息到疲勞度歸零。
XDU 1022 A simple math problem 2:數論篩法求前綴和
題目大意 定義 f(n) = Σ_{i=1..n} ⌊n/i⌋。求 sum(a,b) = Σ_{n=a..b} f(n) mod 1007。多組查詢(≤1000
POJ 3186 Treats for the Cows:區間 DP 逆序推導
題目大意 有 n 顆糖果排成一行,價值 v[1..n]。每天從兩端取一顆賣出,第 i 天賣出的糖果收益 = 價值 × i。求最大總收益。n ≤ 2000。 區
HDU 1506 Largest Rectangle in a Histogram:單調棧 / DP 求最大矩形面積
題目大意 給定 n 個寬度為 1 的相鄰矩形,高度為 h[i]。求能在直方圖內形成的最大矩形面積。n ≤ 100000,高度 ≤ 2^31-1,需 64 位整數
POJ 1258 Agri-Net / HDU 暢通工程:最小生成樹 Prim 算法模板
題目大意 給定 N 個節點(農場/村莊)及其兩兩間的距離(或部分邊),求連通所有節點的最小總邊權(最小生成樹)。 POJ 1258:輸入 N×N 邻接矩陣,N
UVALive 6814 Lexicography:字典序第 K 個字母異位詞
題目大意 給定一個單詞(大寫字母,長度 ≤ 16)和排名 K(≤ 2^45,需 64 位整數),求其所有字母異位詞(全排列去重)按字典序排列時第 K 個。輸入以
POJ 3237 Tree:樹鏈剖分維護路徑最大值與翻轉
題目大意 給定一棵樹,邊有權值。支持三種操作: 修改某條邊的權值 查詢路徑上最大邊權 將路徑上所有邊權取反(乘 -1) 需用樹鏈剖分 + 線段樹維護,線段樹
C++11 模板元編程:type_traits、可變模板與 tuple 實戰
模板元編程概述 模板元編程(TMP)是在編譯期執行的程序,操作編譯期常量(類型、整數常量)。C++11 引入 type_traits、可變模板參數、tuple
POJ 3666 Making the Grade:動態規劃調整道路高程
題目大意 給定長度 N(≤2000)的道路高程序列 A[i],需調整為單調非遞增或非遞減序列 B[i],最小化總成本 Σ|A[i]-B[i]|。輸出最小成本。
HDU 1272 小希的迷宮:並查集判斷樹的合法性
題目大意 給定若干條邊 (x, y),構成無向圖。每組數據以 0 0 結束,全部數據以 -1 -1 結束。判斷每組邊是否構成一棵樹(即連通且無環)。輸出 Yes