BZOJ 2500 - 幸福的道路:樹形 DP + 單調隊列求最長合法區間
問題描述 給定一棵樹,邊有長度。設 a[i] 為從節點 i 出發的最長鏈長度。求 a[i] 序列中最長的連續區間,使區間內最大值與最小值之差 ≤ m。 解法:
BZOJ 2957 - 樓房重建:分塊與線段樹維護可見樓房數
問題描述 n 棟樓(n≤1e5),初始高度 0。m 次操作:修改第 x 棟樓高度為 y。每次操作後,查詢從原點 (0,0) 看過去能看到多少棟樓(即斜率 y/x
LeetCode Sum Root to Leaf Numbers:DFS 累積路徑數值求和
問題描述 二叉樹節點值 0-9。每條根到葉路徑代表一個數(如 1→2→3 代表 123)。求所有路徑數之和。 解法一:遞歸返回和(函數式風格) 輔助函數 df
BZOJ 3454 - 家族:並查集 + 區間滑動窗口求最大親和力
問題描述 無向圖 n 點(n≤1000),m 條邊(m≤5000),每條邊有權值 f。每個連通塊大小 sz 有親和力 w[sz]。求一個最小的邊權區間 [L,R
Swift 統計字符類型:元音、輔音與其他字符計數
實現代碼 (vowels: Int, consonants: Int, others: Int) { var vowels = 0, consonan
Java 正則表達式匹配輸入內容:Pattern 與 Matcher 實戰
核心類 Pattern:正則表達式的編譯表示,Pattern.compile(regex) 獲取實例。 Matcher:對輸入字符串進行匹配的引擎,p
C++ 多線程入門:CreateThread、_beginthreadex、_beginthread 詳解
前言 多核時代,多線程是提升程序併發性能的關鍵。Windows C/C++ 提供三種創建線程的 API,由低級到高級依次為 CreateThread、_begi
UVa 1644 - Prime Gap:素數篩 + 二分查找間隔
問題描述 給定 n(≤1,299,709),若 n 是素數輸出 0;否則輸出包含 n 的兩個相鄰素數之差(即素數間隔)。 解法:埃氏篩 + 二分 預處理篩出
LeetCode Find Peak Element:二分查找峰值元素
問題描述 峰值元素:嚴格大於左右鄰居。數組相鄰元素不相等,邊界視為 -∞。返回任意峰值索引。要求 O(log n) 時間。 解法:二分查找 關鍵性質:若 nu
ZOJ 3640 - Help Me Escape:概率 DP 求逃脫期望天數
問題描述 c_i,花 t_i 天逃脫;否則停留 1 天,戰力增加 c_i,重新選路。求逃脫期望天數。 解法:狀態 DP + 終態截斷 設 dp[x] = 戰
Android BroadcastReceiver 完全指南:類型、註冊與生命週期
廣播接收器簡介 BroadcastReceiver 是 Android 四大組件之一,用於接收系統或應用發送的廣播 Intent。無 UI,但可啟動 Activ
HDU 2196 - Computer:樹形 DP 求每節點到最遠節點距離
問題描述 樹形網絡,N 節點(N≤10000),邊有長度。求每個節點到其他所有節點的最大距離(即該節點為根時的樹高)。 解法:兩遍 DFS(換根 DP) 第一
Codeforces 292E - Drazil and Park:線段樹維護環上最大能量
問題描述 環形公園 n 棵樹,第 i 棵高度 h_i,相鄰距離 d_i。選兩棵樹 x,y,能量 = 2(h_x+h_y) + dist(x,y)(沿環一側距離)
CF 518A - Vitaly and Strings:構造字典序介於兩字串之間的字串
問題描述 給定等長字串 s < t(小寫字母)。求字典序滿足 s < ans < t 的字串 ans,或輸出 No such string。 解法:s 的下一
Codeforces 518D - Ilya and Escalator:概率 DP 求期望人數
問題描述 n 人排隊上電梯。每秒:隊首以概率 p 進入電梯,或以 1-p 留原地(阻塞後面)。電梯無限長,人進入後不再離開。t 秒後,電梯上人數的期望值。n,t
CF 518B - Tanya and Postcard:貪心構造最大 YAY 與 WHOOPS
問題描述 目標字串 s,報紙字串 t(|t| ≥ |s|)。從 t 中剪下 |s| 個字符組成字串。位置字符完全相同(含大小寫)叫 YAY,只字母相同大小寫不同
1012 - The Best Rank:四種排名中的最優等級
問題描述 E。對 M 個查詢學生,輸出其最優排名(排名數 + 科目代碼),若不存在輸出 N/A。 解法:四次排序 + 記錄最優 對四種分數分別降序排序,計算
CF 518C - Anya and Smartphone:圖標位置動態維護與手勢計算
問題描述 手機菜單有 n 個應用圖標,每屏 k 個。初始順序為排列 a。依次啟動 m 個應用(序列 b)。啟動位於第 t 屏的應用需 (t-1) 次滑動 + 1