原创 CF267 div2 C 區間DP

題意:很經典的最大k段不相交子序列和問題 要求是使得這個和最大 求出這個和的值 解法:開始的時候想一維來做的 然後寫完了發現會有重複選擇的問題 這個紙上把第二個 例子寫一下就很清楚了 但是當時我沒有這麼做 然後我們發現狀態只能增加了 爲了

原创 hdu 3966 LCT

題意:給定樹和樹上每一個節點的權值 操作是修改一條路徑上所有點的權值  然後詢問點的權值是多少   解法:這一題初看的時候想到用splay解 但是用lct應該是更加簡單的  熟練剖分的話也可以的 因爲樹形沒有一點改變 然後用lct的時候其

原创 hdu5033 單調棧

題意:給定很多摩天大樓的高度和一些觀測點 然後要求求出每一個觀測點仰望天空的最大角度 解法:維護一個斜率下降的序列 這樣就可以隱去一些凹點 這些凹點是不會影響後來的點的  #include<set> #include<map> #incl

原创 hdu1520 樹形DP

題意:給出一棵樹,每一節點有一個權重,約束是不能有兩個相鄰的節點被同時選擇,然後問最後能夠得到的最大權重是多少 解法:樹上的最大獨立集,然後狀態轉移方程就是選擇了當前點只能加上每個兒子節點不選的最大權重,然後如果不選當前節點,那麼要考慮選

原创 SPOJ GGS1 線段樹

題意:求區間最大的子段和 這題之前寫過 然後今天重寫了一遍 感覺確實是區間合併的好題 解法:要開四個域 分別是當前段的和 左起連續最大和 右起連續最大和 區間最大子段和 然後詢問的時候維護一個當前最大和一個最大前綴和 總之就是要考慮到各種

原创 hdu4358 樹形轉線性 線段樹

題意:給定了一棵樹和樹上每一個節點的權值 然後詢問是給出子樹頂點求子樹中出現k次的節點權值的個數 解法:把樹形先轉化成線性的 然後離線所有詢問 不要忘了把樹上節點的權值離散化 弄完之後就直接往 掃就可以了  當某一種權值>=k時才進行維

原创 SPOJ QTREE

題意:給定邊權 然後詢問兩點之間最大的邊 修改操作是修改指定邊的權值 解法:首先要把邊權轉化成點權 那麼我們發現每個權只對應於每條邊深度大的那個節點 然後根就沒有權了 再次,我們需要查詢的時候忽略兩點之間lca的權值 因爲lca的權是屬於

原创 hdu4455 線性DP

題意:給定10^6的數字序列 然後10^6個詢問所長度爲w的段中所有不相同的數字的個數的和是多少 解法:這一題很容易往數據結構上去想,蛋撻是個DP啊 #include<iostream> #include<cstdio> #include

原创 hdu2475 LCT

題意:給出一堆的盒子和他們的包含關係 然後操作是把a盒子拿到b盒子裏面 詢問a盒子所在的最外層的盒子是哪隻 然後特殊的是0代表盒子在地上 解法:盒子包含關係其實是樹形關係 然後一堆盒子之間其實是一片森林  我們只要執行lct的 cut操作

原创 hdu5008 後綴數組+線段樹

題意:給出一個長度到10^6的串 現在要統計該串中第k小的不重複子串 然後找到最左端的那個  解法:後綴數組的作用是統計每個左端點不重複的串的個數 然後用線段樹維護每個起始點的不重複子串綜合 那麼就可以求出第k個子串所在的塊了 然後就是求

原创 hdu3486 RMQ+二分

用線段樹維護:點擊打開鏈接 用rmq維護的效果好一點 #include<cstdio> #include<algorithm> using namespace std; #define ls (rt<<1) #define rs (r

原创 hdu3486 暴力+線段樹

題意:選出最小的段數 使得段中的最大值的和要超過k 解法:線段樹寫這題確實不怎麼合適 不管怎麼說還是rmq的查詢效率比較高的  即使這樣 也要加上優化 就是判斷二分時的上下界的極限 還有預判是否k永遠無法到達和是否最小值就已經超過k了 大

原创 hdu2476 區間DP

題意:進行一個串的粉刷 使得第一個串刷成第二個串 然後刷的方式是粉刷一段爲同一種顏色即可 解法:的確是很巧妙的構造方法 首先考慮將一個完全白的串粉刷成目標串需要的最少的次數 然後我們就會發現 這是一個很簡單的dp問題 然後我們解決的了這個

原创 hdu3468 splay

題意:其實就是區間的加法和詢問區間的和 解法:主要爲了嘗試一下splay維護區間和 因爲之前只寫過splay區間加法維護  然後覺得很神奇啊 左右兩個節點是不算內的,以前寫單點都沒有發現這一點吧 #include<cstdio> #inc

原创 POJ2528 線段樹區間覆蓋

題意:在牆上貼海報 然後後一次貼上去的會覆蓋上一次貼的 然後最後貼完之後求最後能夠看見的有幾張 解法:這一題很早就想寫了 但是當我寫了大量線段樹反倒是覺得這個真的有什麼優化也只是再插入的時候了 然後最後統計區間居然接近遍歷了整棵樹 這個使