PAT 1057 Stack with PeekMedian:三種解法從暴力到樹狀數組再到雙 Multiset
題目大意 實現一個支援三種操作的堆疊: Push key:壓入鍵值 (1 ≤ key ≤ 10^5) Pop:彈出頂端元素並輸出,空則輸出 Invalid P
NYOJ 170 網絡可靠性:樹的雙連通塊與葉子配對
題目大意 給定一棵 N 個節點的樹 (N-1 條邊,每節點度數 ≤ 3),需新增最少邊數,使任意單一節點故障後,其餘節點仍連通。即將樹升級為 點雙連通圖 (2-
C++ 成員模板完整指南:定義、實例化與標準庫應用
什麼是成員模板? 成員模板 是類別 (無論是否為類別模板) 內部宣告的模板成員函式或巢狀類別模板。它們允許類別以泛型方式接受多種型別的參數,是 C++ 泛型程式
HDU 4596 Yet another end of the world:擴展歐幾里得與區間交集判定
題目大意 給定 n 組三元組 (x_i, y_i, z_i),詢問是否存在整數 d,使得至少兩組滿足: y_i ≤ d % x_i ≤ z_i 其中 % 為取模
HDU 4497 GCD and LCM (組合數學視角) 詳細題解
題目連結 HDU 4497 GCD and LCM 題目大意 給定三個正整數的最大公約數 G 和最小公倍數 L,求滿足條件的有序三元組 (x, y, z) 的
HDU 4497 GCD and LCM:三數組計數的質因數分解解法
題目大意 給定三個正整數的最大公約數 G 與最小公倍數 L,求有多少組有序三元組 (x, y, z) 滿足: gcd(x, y, z) = G 且 lcm(x,
C/C++ 每日小練(七):墓地雕塑問題完整解析
題目背景 在一個周長為 10000 的圓周上,等距分布著 n 座原有雕塑。現需加入 m 座新雕塑(位置可任意選擇),使所有 n+m 座雕塑在圓周上均勻分布。為達
UVA 1291 Dance Dance Revolution:DP 最小體力消耗,滾動數組優化
問題描述 舞舞革命遊戲:5 個面板(中、上、下、左、右)。雙腳初始在中。移動消耗: 原地踏步:1 中 → 其他:2 相鄰面板:3 對面面板:4 給定箭頭序列
HDU 4499 Cannon:暴力枚舉行狀態(位掩碼)+ 剪枝 DFS 放置最大炮數
問題描述 n × m (n,m ≤ 5) 棋盤,已有 k 個棋子(不可移動)。炮的攻擊規則:同行/同列中間恰好有一個棋子(作為炮架)才能攻擊。求最多能再放置多少
C++ 蟻群算法求解 TSP 問題:原理、參數設置與代碼實現
TSP 問題簡介 旅行商問題:n 個城市,完全圖,邊權為距離。求訪問每城市恰好一次並回到起點的最短迴路。NP-Hard。 蟻群算法(ACO)核心思想 模擬螞蟻
ZOJ 3760 Treasure Hunting:二分圖最大獨立集 = 總權 - 最大流(最小割)
問題描述 有 n 個寶物,每個有坐標 (x, y) 和價值 v = x & y。若兩寶物滿足 1 則不能同時選。求最大總價值。 關鍵觀察:按 x^y 奇偶分
LA 4329 亞洲區賽題:樹狀數組統計三元組逆序對,前綴和思想
問題描述 給定長度 n (≤ 20000) 的排列(或含重複數字的序列),求三元組 (i, j, k) 滿足 i < j < k 且 a[i] a[k] 或
C 合併並排序指針數組與二維字符數組:動態內存管理完整示例
問題描述 有一個指針數組 char *array1[] 和一個二維數組 char array2[][30],需將兩者所有字符串合併、按字典序排序,返回新分配的指
HDU 4597 Play Game:記憶化搜索博弈 DP,雙堆取牌最優策略
問題描述 兩堆牌,每堆 n (≤ 20) 張,牌面朝上。雙方輪流,每次可從任一堆的頂部或底部取一張,獲得牌面分值。雙方均採取最優策略(先手最大化得分差,後手最小
POJ Meteor Shower:BFS 帶時間限制的隕石閃避
問題描述 人從 (0,0) 出發,每秒可移動上下左右一格。隕石落下會摧毀落點及其四鄰格。輸入 M 隕石,每個給出 (x, y, t):時刻 t 落在 (x, y
BZOJ 1803 / SPOJ QTREE3:主席樹(可持久化線段樹)查詢樹上第 k 大
問題描述 給定一棵 n 個節點的樹,每個節點有權值。多次查詢:子樹 x 內第 k 大的權值(或節點 id)。 解法:DFS 序 + 主席樹 DFS 求每個節
HDU 2066 一個人的旅行:多源最短路,虛擬源點 + Dijkstra
問題描述 有 T 條雙向道路,連接城市(編號 1~1000)。草兒家在小鎮,與 S 個城市相鄰(可視為從家到這些城市距離為 0)。她想去 D 個目標城市之一。求