原创 POJ 1739 Tony's Tour (插頭DP)

題目類型  插頭DP 題目意思 給出一個 由n * m(1 <= n,m <= 8) 個小方格組成的矩陣 其中某些小方格上有障礙物 問從矩陣的左下角走到右下角,途中經過所有非障礙空格的方法數有多少個 解題方法 插頭DP 參

原创 POJ 1062 昂貴的聘禮 (Dijkstra算法的運用)

題目類型  Dijkstra算法的運用 題目意思 中文題目描述 解題方法 先枚舉地位的範圍(因爲第1件物品必須在交易中出現所以範圍區間的左端點就是 L1-m -> L1 右端點範圍是 L1 -> L1+m) 確定範圍後就是

原创 HDU 3516 Tree Construction (四邊形不等式優化DP)

題目類型  四邊形不等式優化DP 題目意思 給出 n  (1 <= n <= 1000) 個橫座標不斷增大縱座標不斷減小的點的座標 問用向上的直線或向右的直線把這些點連起來的代價最小是多少 解題方法 很容易得出樸素的dp轉移

原创 POJ 2449 Remmarguts' Date (第k短路)

題目類型  第k短路 題目意思 給出 n 個點 m 條有向邊(n <= 1000, m <= 100000) 問從 s->t的第 k 短路是多少 (點可以重複走) 解題方法 使用A*算法 -> 對於 前K短路徑問題 和 A*

原创 POJ 2253 Frogger (floyd, 二分)

題目類型 floyd, 二分 題目意思 給出最多 200 個點和這些點的座標 現在要找一條從點1跳到點2的路徑(每跳一次從一個點跳到另一個點) 這條路徑中邊的最大值要最小 問最小值是多少 解題方法 方法1: nmax[i][

原创 POJ 3709 K-Anonymous Sequence (斜率優化DP)

題目類型  斜率優化DP 題目意思 給一個由 n (2 <= n <= 500000) 個數組成的非降序的數列 現在要把這個數列劃分成若干組(每組最少 k 個數 (2 <= k <= n) 對於每組所有數字要變成這一組的最小那個數

原创 POJ 3259 Wormholes (Bellman-Ford算法的運用)

題目類型  Bellman-Ford算法的運用 題目意思 給出 n (1 <= n <= 500) 個點, m (1 <= m <= 2500) 條雙向邊 和 w (1 <= w <= 200) 條單向邊 其中雙向邊的邊權爲正 單向

原创 POJ 2771 Guardian of Decency (二分圖的最大獨立集)

題目類型  最大獨立集 題目意思 給出 n 個學生的信息 其中只要兩個學生滿足以下條件之一就可以一起出行: 1.身高差超過 40 2.性別不同 3.喜歡音樂類型不同 4.喜歡體育類型相同 問最多有多少個學生可以一起出行 解題方

原创 POJ 1201 Intervals (差分約束系統, 貪心+線段樹)

題目類型  差分約束系統, 貪心+線段樹 題目意思 給出最多50000個整數區間以及要求這些區間至少包含的整數的個數 現在需要找一個元素數量最小的整數集合滿足以上條件 問最少的元素個數是多少 解題方法 方法一 差分約束系統

原创 POJ 1459 Power Network (最大流)

題目類型  多源多匯最大流 題目意思 給出 ns 個供電點最大提供的電量 和 nt 個用電點最大的用電量 以及中間一些運輸線的最大容納的電量 問最多有多少電量從供電點運輸到用電點 解題方法 構造一個超級源點s和一個超級匯點t

原创 POJ 3207 Ikki's Story IV - Panda's Trick (2-SAT)

題目類型  2-SAT 題目意思 有一個從 0 -> n-1(n <= 1000) 的數字圓環 現在給出 m 條邊(m <= 500) 其中一條邊(u,v)的意思是把 u 點和 v 點連起來 (顯然有兩種方法 一種是在 圓環裏面連 一

原创 POJ 3352 Road Construction (邊雙連通分量)

題目類型  邊雙連通分量 題目意思 給出一個 n 個點 m 條邊的無向連通圖(n,m<=1000) 問至少要添加多少條無向邊使得 刪除原圖中任意一條邊後原圖依然連通 解題方法 根據題意 顯然如果刪除原圖中的 橋 就會使原圖不

原创 暑假訓練4-數據結構專題

ACM中常用數據結構算法 : 1. LCA和RMQ問題 : 算法之LCA與RMQ問題 2. 樹狀樹組 : 數據結構之樹狀數組 3. 線段樹 :  線段樹及其應用 【完全版】線段樹 4. splay樹 : Splay伸展樹&模板 5. T

原创 POJ 3020 Antenna Placement (二分匹配, 帶花樹, 狀壓dp)

題目類型  二分匹配, 帶花樹, 狀壓dp 題目意思 給出一個 n * m 的字符矩陣 如果字符爲 * 表示需要覆蓋 每次覆蓋可以覆蓋一個 1*2 或 2*1的小矩陣 問要把所有 * 都至少覆蓋一次需要的次數 解題方法 1.

原创 POJ 2186 Popular Cows (強連通分量)

題目類型  強連通分量 題目意思 給出 n (n<=10000) 個點和 m(<=50000) 條有向邊 問有多少個點滿足 其他點到這個點都可達 解題方法 求出強連通分量後 把在同一個強連通分量中的點看成一個點(即縮成一個點