POJ 3067 Japan 解題報告:樹狀數組求高速公路交叉數
題目大意 東岸 N 城市,西岸 M 城市(均由北向南編號 1~N/M)。K 條高速公路連接東岸城市 x 與西岸城市 y。高速公路為直線。求交叉對數。兩條公路 (
Problem 1567 D Sloth's Angry 解題報告:遞歸貪心覆蓋矩形
題目重述 森林為 N 行,第 i 行從最左列起連續有 A[i] 隻樹懶(A[i] ≤ 10⁹)。每秒可選一個全為樹懶的矩形區域餵食。求餵飽所有樹懶的最少秒數(即
POJ 2299 Ultra-QuickSort 解題報告:樹狀數組求逆序數
題目大意 給定長度 n (n < 500,000) 的不重複整數序列,Ultra-QuickSort 透過交換相鄰元素將其排序。求最少交換次數(即逆序數)。多組
LeetCode Container With Most Water 解題詳解:雙指針貪心法 O(N)
題目重述 給定陣列 height[i] 代表座標 (i, height[i]) 的垂直線。任選兩條線 i, j (i < j) 與 x 軸圍成容器,容器面積 =
LeetCode Generate Parentheses 解題詳解:回溯法生成合法括號組合
題目重述 給定 n 對括號,生成所有合法的括號組合。合法定義:任意前綴中左括號數 ≥ 右括號數,且總數相等。 例:n=3 ⇒ ((())), (()()), (
C++11 讓程式碼更簡潔:從迭代器到範圍 for 再到算法
動機:簡單的事不應該寫得複雜 「面向物件語言的問題在於,它總是附帶著所有它需要的隱含環境。你想要一根香蕉,但得到的卻是一隻拿著香蕉的大猩猩,和整個叢林。」 —
HDU 2647 Reward 解題報告:拓撲排序 + 反向建圖求最小獎金總和
題目大意 n 名工人,每人獎金至少 888。給定 m 條要求「a 的獎金比 b 多」。滿足所有要求的前提下,求最小總獎金;若存在矛盾(循環),輸出 -1。 關
Effective C++ 條款 31-34 深度解析:繼承設計的核心原則
條款 32:確定 public 繼承塑模出 is-a 關係 核心觀念 public 繼承意味著「is-a」(是一種)關係:派生類別物件一定可以當作基類別物件使用
HDU 3342 Legal or Not 解題報告:拓撲排序判斷師徒關係合法性
題目大意 給定 N 個成員(編號 0~N-1)與 M 對「師徒關係」(x 是 y 的師父),關係具有傳遞性(A 是 B 師父,B 是 C 師父 ⇒ A 是 C
UVA 10318 解題詳解:3×3 翻轉矩陣的 DFS + 剪枝優化
問題描述 給定 R×C 的按鈕面板(初始全暗),以及一個 3×3 的影響矩陣(* 表示會翻轉)。按下某按鈕時,以該鍵為中心,按影響矩陣翻轉對應位置(超出邊界忽略
HDU 4758 Walk Through Squares 解題報告:AC 自動機 + DP 計數路徑
題目重述 在 M×N 的網格中,從左上角 (1,1) 走到右下角 (M+1, N+1),每步只能向右(R)或向下(D)。給定兩個由 R、D 組成的字串 A、B(
URAL 1821 Biathlon 解題詳解:交錯出發的領先者判斷
題目大意 冬季兩項比賽採交錯出發,每位選手間隔 30 秒出發。輸入給出選手出發順序與其完成比賽的總耗時(格式 mm:ss.d)。計分板會即時顯示目前「實際跑步時
C++ 運算子多載完整指南:從入門到實戰
什麼是運算子多載? 運算子多載是 C++ 中一項強大的特性,允許開發者為自定義類型(如類別)賦予內建運算子(如 +、-、== 等)新的含義。簡單來說,就是讓自訂
BZOJ 3196 / TYVJ P1730:二逼平衡樹 - 線段樹套 SBT 動態區間第 k 小
BZOJ 3196 / TYVJ P1730:二逼平衡樹 - 線段樹套 SBT 動態區間第 k 小 題目大意 序列長度 N ≤ 50000,操作 M ≤ 50
Cocos2d-x 學習歷程(一):引擎特性與核心概念介紹
Cocos2d-x 學習歷程(一):引擎特性與核心概念介紹 引擎簡介 Cocos2d-x 是通用 2D 游戲引擎,基於 Cocos2d-iPhone 設計,C
FZU 2188 過河 I:BFS 狀態空間搜索求最少渡河次數
FZU 2188 過河 I:BFS 狀態空間搜索求最少渡河次數 題目大意 小明需運 x 只羊、y 只狼過河。船容量 n 0 時羊被吃。求最少渡河次數,不可則輸
C++ 基本數據類型詳解:整型、浮點型選擇指南
C++ 基本數據類型詳解:整型、浮點型選擇指南 高度概括 C++ 內建類型分兩大類:整型(無小數部分)和 浮點型(有小數部分)。 一、整型 按寬度遞增: