POJ 3277 City Horizon:離散化 + 線段樹區間覆蓋求天際線面積
題目大意 n 棟建築,每棟有左/右 x 坐標、高度 h。建築可能重疊。求天際線總面積(即所有 x 處最大高度的積分)。坐標範圍大,需離散化。 離散化處理 收
UVA 10382 Watering Grass:貪心區間覆蓋最少噴頭數
問題建模 長 l、寬 w 的草帶,n 個噴頭安裝在中心線上。噴頭位置 p、半徑 r。噴灑範圍在中心線上的投影為線段。求最少開啟多少噴頭覆蓋整個草帶長度 [0,l
HDU 2056 Rectangles:矩形相交面積計算幾何基礎題
題目大意 給定兩矩形對角頂點坐標,求相交面積。多組輸入直到 EOF。 解法步驟 **統一頂點**:將每個矩形轉為左下角 (x1,y1) 和右上角 (x2,y
HDU 4777:樹狀數組離線查詢區間內與所有數互質的數個數
問題大意 序列長度 n ≤ 2×10⁵,m 次查詢 [l,r]。問區間中有多少個數,與區間內**所有**數互質(即該數的質因子在區間內不出現在其他數中)。 核
UVA 11127 Triple-Free Binary Strings:回溯剪枝計數無三連續相同子串
題目大意 給定含 0,1,* 的字符串(長度 ≤ 50),* 可替換為 0 或 1。求替換後的字符串中,**不存在長度相同且連續出現三次的子串** 的方案數。
UVA 10120 Gift?!:青蛙過河 BFS + 規律歸納
題目大意 N 塊石頭排成一直線,青蛙從左岸(0)跳到第 1 塊石頭,第 i 次跳躍距離固定為 2i-1 米(可前可後)。問能否到達第 M 塊石頭。N ≤ 10⁶
C/C++ 使用 Lua 協程實現非阻塞並發
Lua 協程基礎 協程是用戶態線程,支持 `yield` 主動讓出控制權,`resume` 恢復執行。適合實現非阻塞 I/O、狀態機、異步流程控制。 C/C+
HDU 1086 幾何題:線段相交判斷模板應用
題目大意 依次給出 n 條線段,每條線段加入後,查詢其與前面所有線段的相交情況(具體輸出要求題目未全給出,核心為相交判斷)。 計算幾何基礎模板 `Point
UVA Live 3507 Keep the Customer Satisfied:貪心 + 優先隊列調度最大訂單數
問題大意 n 個訂單,每個需時 q、截止時間 d。單機調度,求最多能完成多少訂單。 貪心策略 d`,則從已選訂單中**移除耗時最長**的訂單(用大根堆維護)
USACO The Clocks:九鐘同步問題暴力枚舉解法
問題建模 3×3 九個時鐘,每個指向 3/6/9/12。9 種操作,每種影響特定時鐘(順時針轉 90°)。求最短操作序列使所有時鐘指向 12。操作無順序關係,同
選擇排序算法詳解:原理、性能測試與代碼實現
算法思想 每輪從無序區選出最小(大)元素,與無序區首位交換。無序區縮小,重複直到結束。 複雜度分析 時間:O(n²) —— 兩層嵌套循環,比較次數固定 n(
Codeforces 379D New Year Letter:構造含指定 AC 子串數的費波納契字串
題目大意 給定 k, x, n, m。構造長度為 n 的 s1 和長度為 m 的 s2(大寫字母),定義 sₙ = sₙ₋₂ + sₙ₋₁(字串拼接)。要求 s
組合生成 01 轉換法:從 m 個元素中選 n 個的所有組合
算法原理 用 0/1 數組表示選擇狀態(1=選中)。初始狀態:左邊 n 個 1,右邊 m-n 個 0(字典序最小)。每步生成下一組合: 從左向右掃描,找第一個
C/C++ 基本查找算法:順序、折半、索引、散列查找全解析
查找基本概念 **查找表**:同類型數據元素集合 **關鍵字**:唯一標識元素的數據項(主關鍵字/次關鍵字) **查找成功/失敗** **靜態查找**(只查)
POJ 2187 凸包直徑:旋轉卡殼法求最遠點對
問題大意 給定 n 個平面點,求凸包上最遠點對的距離平方(即凸包直徑)。n ≤ 50000。 兩步走策略 求凸包:Graham 掃描 O(n log n)。
順序棧完整實現:初始化、入棧、出棧、擴容與輔助操作
棧的定義與特點 僅允許在表尾(棧頂)插入/刪除的線性表。先進後出 (LIFO)。順序棧用動態數組實現,棧底固定,棧頂指針移動。 數據結構定義 #define
UVA 10603 Fill - 倒水問題 (BFS 狀態空間搜索)
問題描述 三壺容量 a,b,c (≤200)。初始第三壺滿,前兩壺空。允許倒水操作:從一壺倒入另一壺,直到源空或目標滿。求:使任一壺水量恰好為 d 的最小總倒水