演算法習題分類 差分陣列 樹鏈剖分 圖的連通性問題 2-SAT LCA AC自動機 動態規劃(基礎)
My Travel Of Acm!
早早的結束了考試,最近任務不是那麼重,就花點時間整理了一下大二上學期學習過的一些演算法
--2019-01-06
分類 | 知識清單 |
資料結構 | 樹狀陣列 |
STL | |
差分陣列 | |
樹鏈剖分 | |
圖論 | 圖的連通性問題 |
2-SAT | |
LCA | |
字串 | AC自動機 |
KMP | |
動態規劃 | 動態規劃(基礎) |
相關推薦
演算法習題分類 差分陣列 樹鏈剖分 圖的連通性問題 2-SAT LCA AC自動機 動態規劃(基礎)
My Travel Of Acm! 早早的結束了考試,最近任務不是那麼重,就花點時間整理了一下大二上學期學習過的一些演算法 --2019-01-06 分類 知識清單 資
CF 504E Misha and LCP on Tree——字尾陣列+樹鏈剖分
題目:http://codeforces.com/contest/504/problem/E 樹鏈剖分,把重鏈都接起來,且把每條重鏈的另一種方向的也都接上,在這個 2*n 的序列上跑字尾陣列。 對於詢問,把兩條鏈拆成一些重鏈的片段,然後兩個指標列舉每個片段,用字尾陣列找片段與片段的 LCP ,直到一次 L
bzoj3881 [Coci2015]Divljak(AC自動機+fail樹+dfs序+樹狀陣列+樹鏈剖分)
bzoj3881 [Coci2015]Divljak 題意: Alice有n個字串S1,S2...SnS1,S2...Sn,Bob有一個字串集合T,一開始集合是空的。 接下來會發生q個操作,操作有兩種形式: “1 P”,Bob往自己的集合裡添加了一個
Luogu P3258 松鼠的新家(樹鏈剖分+線段樹/樹狀陣列)
題面 題解 這種題目一看就是重鏈剖分裸題,還是區間修改,單點查詢,查詢之前在遍歷時要記一個\(delta\),因為這一次的起點就是上一次的終點,不需要放糖,所以可以用\(BIT\)來寫,但我寫完\(modify\)才反應過來,所以沒改了。 #include <cstdio> #inclu
樹鏈剖分演算法詳解
學OI也有一段時間了,感覺該搞點東西了。 於是學習了樹(熟)鏈(練)剖(pou)分(糞) 當然,學習這個演算法是需要先學習線段樹的。不懂的還是再過一段時間吧。 如果碰到一道題,要對一顆樹的兩個點中的最短路徑、以u為根的子樹之類的東西進行修改或者查詢,那麼大概就是樹鏈剖分的題了。 樹鏈剖分就是把一顆
樹鏈剖分詳細解讀(末尾附一些入門難度習題傳送門)
不知大家發現沒有,我們在做與樹有關的題的時候,時常需要詢問兩點之間的路徑上的一些資訊(如最大點(邊)權,點(邊)權和),在沒有修改才操作的時候,我們可以用諸如倍增lca等方法維護兩點間路徑的資訊,而當出現修改操作的時候倍增等演算法就顯得無力。這時候,我們顯然需要一種資料結構來支援將樹上的路徑
P4949 最短距離(樹鏈剖分+樹狀陣列+基環樹)
傳送門 一箇中午啊…… 本來打算用仙人掌搞的,後來發現直接基環樹就可以了,把多出來的那條邊單獨記錄為\((dx,dy,dw)\),剩下的樹剖 然後最短路徑要麼直接樹上跑,要麼經過多出來的邊,分別討論就好了 因為這裡的樹剖只有單點修改和區間查詢,於是可以用樹狀陣列 //minamoto #include&l
2018.11.05【NOIP2015】【洛谷2680】【UOJ#150】運輸計劃(二分答案+DFS序+樹上差分)或(複雜度並不對(也不能過)的樹鏈剖分)
洛谷傳送門 解析: UOJ上的資料很強,複雜度不對過不了的,但是LCALCALCA如果是用倍增求的話也過不了(已經加了上界優化)。。。畢竟樹剖常數小,複雜度還不滿。。。 思路: 首先,不要試圖化邊為點,每條邊的資訊可以存在它所指向的兒子中。 解法1:UOJ上
計蒜客 2018ICPC徐州站/gym 102012G Rikka with Intersection(組合計數 + 樹鏈剖分 + 樹狀陣列)
大致題意:給你一個包含n個點的樹和m條路徑。現在讓你從這m條路徑中選擇k條路,使得這k條路徑一定有至少一個公共交點,問選出這k條路徑的方案數是多少。 最樸素的想法就是,每次檢視一個點的貢獻,也就是列舉這個公共點,然後看有多少個路徑經過這個點,組合數求
bzoj2588 -- 樹鏈剖分+主席樹
stat dfs strong pri 權值線段樹 iostream top pan splay 先將權值離散。 顯然可以對於每個結點建一棵權值線段樹存這個點到根結點的路徑上的點權,詢問時在線段樹上二分,但這樣時間是O(n2log2n)的。 然後想到用主席樹優化,時間復雜度
樹鏈剖分求LCA
bsp 兩個 pla str 空間 num isp gif 節點和 樹鏈剖分求LCA 樹鏈剖分需要將樹的邊分為重邊和輕邊。每個節點和他的兒子之間只能有一條重邊,連接著該節點與他兒子中子樹節點最大的一個。一系列連續起來的重邊叫做重鏈,重鏈上的每個點的top值都是重鏈的頂端節點
【bzoj2836】魔法樹 樹鏈剖分+線段樹
urn fin pan online char font -s class efi 題目描述 輸入 輸出 樣例輸入 4 0 1 1 2 2 3 4 Add 1 3 1 Query 0 Query 1 Query 2 樣例輸出
樹鏈剖分的一種用法
我們 祖先 單點 數組 樹狀數組 實現 修改 相加 比較 這篇文章好像發得有點遲了啊QAQ之前忘了發了 又好久沒更了,講一個提高組內容。 我們來考慮一個有趣的問題,我們有一棵有根樹,每個點有點權,要求支持單點加,子樹加。 詢問比較奇怪,每個點有一個點權x,假裝不變,每
【LSGDOJ1834 Tree】樹鏈剖分
done using 給定 continue 返回 ace 最大的 接下來 chan 題目描述 給定一個N個結點的無向樹,樹中的結點按照1...N編號,樹中的邊按照1...N ? 1編號,每條邊都賦予一個權值。你需要編寫程序支持以下三種操作: 1. CHANGE i
BZOJ 2157 旅行(樹鏈剖分碼農題)
tac pragma code vector zoj pla none close tag 寫了5KB,1發AC。。。 題意:給出一顆樹,支持5種操作。 1.修改某條邊的權值。2.將u到v的經過的邊的權值取負。3.求u到v的經過的邊的權值總和。4.求u到v的經過的邊的權值最
樹鏈剖分膜版
logs mes main left ccf init root return getc 十分weak的樹鏈剖分初步 給一棵樹,實現兩個功能: ①給兩個節點u,v,給u,v路上的每條邊權值加a ②給兩個節點u,v,求u,v路上所有邊的權值之和 ps:在線操作
[bzoj 2243]: [SDOI2011]染色 [樹鏈剖分][線段樹]
節點 query ext tran pac led str 包含 sans Description 給定一棵有n個節點的無根樹和m個操作,操作有2類: 1、將節點a到節點b路徑上所有點都染成顏色c; 2、詢問節點a到節點b路徑上的顏色段數量(連續相同顏色被認為是同
樹鏈剖分模板
amp pan mes bsp -m 依次 代碼 clu tree P3384 【模板】樹鏈剖分 題目描述 如題,已知一棵包含N個結點的樹(連通且無環),每個節點上包含一個數值,需要支持以下操作: 操作1: 格式: 1 x y z 表示將樹從x到y結點最短路徑上所有節點的
洛谷——P3384 【模板】樹鏈剖分
upload mes 事情 -- aliyun pro 格式 路徑 sca https://www.luogu.org/problem/show?pid=3384#sub 題目描述 如題,已知一棵包含N個結點的樹(連通且無環),每個節點上包含一個數值,需要支持以下操作:
樹鏈剖分 BZOJ3589 動態樹
ext 個數字 ret mst sin 2個 tput spa mit 3589: 動態樹 Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 543 Solved: 193[Submit][Status][Discuss]