原创 poj 1459 最大流(Dinic)

/************************************************************************* > File Name: poj1459.cpp > Author: c

原创 poj 3281 最大匹配+拆點

“三分圖”的最大匹配,拆點 B A C (食物、牛、飲料) 將人拆點,否則可能會造成同一個人被流無限次訪問,限制了點的容量。 /*******************************************************

原创 hdu 1565 最大權獨立集

最大權獨立集=sum-最小點權覆蓋集 最小點權覆蓋集=最小割(最大流) /************************************************************************* > Fi

原创 poj 1177 線段樹+離散化+掃描線 求矩形並的輪廓長

Picture 題意:求矩形面積並額輪廓長 解法:掃描線+離散化+線段樹 做法:等於更新操作前後的tree[1].len差,做法這麼巧妙實際我也不知道爲什麼。差不多的意思就是更新操作的cover變化長度就是新添加的段或者是刪除

原创 poj 2823 poj 3264 線段樹維護最大最小值

題目:Sliding Window 大體內容: 題意:從後往前掃描k長的段,輸出每段的最小值,最大值 解法:由於時間的原因可以選擇線段樹(RMQ更佳) 具體分析 線段樹維護一個最大值和最小值 查詢的時

原创 zoj 3829

Known Notation 題意:添加字符或者交換字符使得構成合法的後綴表達式,求最少的操作次數。  思路的中心思想: 數字儘量在前,星號儘量在後。 插入操作: 當數字不夠,只需在字符串的前面插入數字即可 //假設我們

原创 poj 2155 二維線段樹/樹狀數組

題目:Matrix 大體內容 題意: 初始化的矩陣爲0; C->給出矩形範圍,範圍內的進行一次翻轉操作 Q->查詢某個位置0或者1 解法: 二維線段樹,或者樹狀數組

原创 hdu 4691 後綴數組+RMQ+LCP

題意: 輸入文件:字符串+回車 輸出文件:最長前綴數+空格+自己獨有的串+回車 做法: 使用後綴數組求最長前綴(參考論文)。因爲查詢次數是大量的,所以在查詢的過程中使用RMQ降低時間複雜度。 /*******************

原创 poj 1151 poj 1389 線段樹+掃描線+離散化 [矩形的面積並]

Atlantis 題意:求矩形的面積並 解法: 掃描線+線段樹維護+離散化 掃描矩形左右邊界,左邊爲入邊,右邊爲出邊,使用線段樹維護段中的覆蓋長度即可 離散化y座標,進行線段樹的左右邊界維護 不同於傳

原创 拓撲排序 FlowerGarden - 2004 TCCC Round 1

這是拓撲排序,爲毛說成dp入門題。 一直看不懂題,就放棄了,但是今天還是於心不忍決定怎麼也要做了。 思路來自 Discuss裏面有詳盡的討論。 可以研究官方題解 這個題目的統計還是很牛逼的 Value 500 Submissio

原创 DP中級

AvoidRoads - 2003 TCO Semifinals 4題目:       就是從(0,0)到(n,m)的路徑個數有多少個,但是會有一些路徑是損壞的,要求路徑總個數是n+m,這就要求只能向右走或者向上走,返回路徑的個數。  二

原创 HDU 4902 Nice boat

ll gcd(ll a,ll b) { if(b==0)return a; else return gcd(b,a%b); } struct Date { int t,l,r,x; }date[maxn]; st

原创 poj 1823 最長空白段

Hotel 大體分析: 題意:最長的空白段,操作段的加入和刪除操作 解法:線段樹+lazy標記 具體操作: > * 線段樹維護,左邊最長連續,右邊最長連續、中間最長連續,因爲之後邊上的連續段對父親的段纔有影響 > * 添加Lazy標

原创 動態規劃:從入門到專家

作者:Hawstein出處:http://hawstein.com/posts/dp-novice-to-advanced.html 前言 本文翻譯自TopCoder上的一篇文章: Dynamic Programming: Fro

原创 poj 3667 最長空白段+查詢最左連續段

Hotel 大體分析: 題意:從最左找連續空間,是否能找到。 解法:同poj1823。 //是1823的加強版,但是提交記錄也是呵呵了。 //多的一個操作就是查詢操作了。 具體分析 更新操作同poj182