原创 hdu 4665 (dfs / 2-SAT)

題目鏈接 多校第六場的題目, 比賽時沒什麼想法, 後來看GYZ神犇的解題報告裏用的是O(n ^ 2)的2 - SAT解法, 但本弱菜還是沒想到如何構圖, 後來看別人都是用dfs過的, 自己寫了一版覺得還是挺好寫的, 而且速度也很快, 但

原创 uva 11990(動態逆序對)

題目鏈接     劉汝佳的數據結構專場題目, 題目就是給定一個1~n的排列求刪除某個數後剩下的逆序對的個數, 我 一開始的做法是樹狀數組套Treap後來T了, 又翻了白書, 白書上的解法是用到了一個靜態的BST,因爲這 題的特殊性, BS

原创 uva 11994(LCT)

題目鏈接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=3145 給出

原创 SRM 586 div2

今天的題目感覺挺水, 還剩25min時我就提交了三題。。。。 250pt:水,直接模擬即可。 500pt:給出一個線性分段函數查詢一些平行於x軸的直線與該函數有幾個交點,也差不多是模擬吧將原函數分段和直線 判相交,感覺怎麼搞都可以的。。

原创 hdu 4010(LinkCutTree)

題目鏈接 :http://acm.hdu.edu.cn/showproblem.php?pid=4010 LinkCutTree的模板題, 感覺LCT的思想和樹鏈剖分差不多, 都是把樹拆成若干條樹鏈, LCT就是用Splay樹維護每條鏈,

原创 spoj GSS7(樹鏈剖分 + 線段樹區間合併)

題目連接 #include <cstdlib> #include <cctype> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #

原创 spoj STRLCP (數據結構 + hash)

題目鏈接 算是陳題了吧, 至少我都在兩個oj上都見過類似題目了, 最大的特徵就是查詢一個動態字符串某兩個後綴 的最長公共前綴, 做法就是用伸展樹動態維護區間的hash值, 每次查詢時二分答案, 然後每次判斷也是 log(n), 所以查詢

原创 hdu 3726 (數據結構綜合(好題))

題目鏈接 LRJ白書上的例題, 最近複習數據結構時又A了一遍這題, 此題很經典同時考察了數據結構中的離線,平衡樹, 並查集,  啓發式合併等多個常用技巧, 其中離線將所有操作反向處理值得回味, 詳細講解可以看白書。 #include <

原创 hdu 4614(線段樹)

題目鏈接 挺基礎的一個線段樹題目,兩種操作, 第二種就是區間和, 第一種的話起始下標也很容易得到, 主要是終點下標需要思考一下, 我的做法是記錄下當前剩餘多少花還沒放, 然後找到第一個剩餘花小於當前區間總空位的個數的區間, 然後根據左子區

原创 hdu 4680(數據結構)

題目鏈接 比賽時一看這題操作這麼多, 還有gcd三角形神馬的以爲是個神題, 後來發現這題其實挺基礎的, 就是用並查集和平衡樹同時維護若干集合, 合併時用啓發式第二個刪點操作是並查集中的經典操作, 做法就是找一個新的點替代原來的點類似ht

原创 sgu 507 (啓發式合併)

題目鏈接 題意就是求一棵樹以每個內節點爲根的子樹中所有葉子節點的權值差的最小值, 做法就是對每個子樹維護一顆平衡樹 然後向上遞推合併時用啓發式。。。 #include <iostream> #include <cstdio> #inc

原创 hdu 4635(強連通分量)

題目鏈接 不難得到如下結論:如果原圖不是強連通, 那麼最優解肯定是隻剩兩個強連通分量且每個分量內都爲完全圖, 可以列出數學表達式不難 發現最後的結果只和兩個分量中的點數的乘積有關, 由於兩者的和一定使兩者的差儘可能大, 但一個點如果既有出

原创 hdu 4674 (縮點 + 倍增LCA)

題目鏈接 當時看到這道題目有點想法後來看到59交0AC, 就知道肯定有不少trick,賽後看了題解才知道原來有這麼多種情況。。。 其實所有的情況大致可以這麼劃分, u 和 v是否相同, u, v不同時, 設u所在環是cu, v所在環是c

原创 SRM588 div2

昨天晚上做的, 一開始跟宿舍哥們說了兩句話, 導致第一題出的慢了, 後來出了500pt, 之後一直再做1000pt, 打完後有個bug一直沒調出來所以就遺憾的兩題了。。。 今早把1000pt交上發現是對的。。。一句話 還是太弱了!!!!

原创 hdu 4391

          題目鏈接   典型的sqrt(n)分塊題目, 不過是個插段問段, 做法還是大同小異。。。。 #include <iostream> #include <cstring> #include <algorithm> #in