0x41 並查集
[noi2015] 程式自動分析 離散化+並查集
uva1316 supermarket 貪心+並查集,價值大的盡量放後面
[noi2002] 銀河英雄傳說 邊帶權並查集,每一列是一棵樹,merge操作等於把一棵樹加到另乙個樹根上,詢問間隔等於兩點與根距離的差,用d維護點到根的距離,合併時d[x]=sz[y],查詢時d[x]=d[fa[x]];
[ceoi1999]parity game s[l...r]中有偶數個1表示sum[r]和sum[l-1]同奇偶,則題目轉換成是否有奇偶矛盾.
維護d[x]表示x與根是否同奇偶,0是相同,如果x與y在同一樹中,判斷d[x]^d[y]是否與回答矛盾,若不在一棵樹,令q是x的根,p是y的根,將p合併到q上,並推出d[p]=d[x] ^ d[y] ^ ans,(x -> p -> q -> y,相互異或的關係)
0x42 樹狀陣列
a ****** problem with integers 維護區間加,區間查詢和,數學推導下公式然後維護兩個樹狀陣列(e(i,1,x)e(j,1,i)b[j] = (x+1)eb[i] - ei*b[i])
lost cows 本質:輸入從後往前遍歷,找第a[k]+1個1的位置,把這個位置的數變成0;樹狀陣列+倍增維護一下,注意:log2(n) = log(n)/log(2).....
線段樹 樹狀陣列 並查集
利用線段樹十分方便的處理區間,線段樹是一棵完美的二叉樹,樹上的每乙個節點都維護乙個區間,根維護的是整個區間,線段樹通常用來計算區間內資料的和或者是修改某處的值。對區間的操作可以再o logn 的時間內完成。下面我們通過 實現線段樹的構建,修改,區間求和。include include 線段樹 def...
bzoj 3211 樹狀陣列 並查集
題意 1 詢問 l,r 區間和 2 修改 l,r 區間的delta dalta i int sqrt delta i 思路 1 區間求和和區間修改我們可以考慮相應的資料結構 線段樹或樹狀陣列,這裡我們選擇樹狀陣列 2 開根號的性質 1 1 或 0 開根號後數值和對答案的貢獻不變,即開根號操作對0 或...
LA 4730 Kingdom 並查集 樹狀陣列
給定n個點的座標,代表n各城市,有m種操作,共分兩種,一種是連線,把兩個點連起來 一旦構成連通圖,這個連通圖即為乙個州 還有種詢問操作,為y c,c為小數部分恒為.5的實數 問y c這條線經過了多少個大周,這些州總共有多少個城市 很明顯要用到並查集,比較好的做法是把並查集落實到線段樹上,並查集維護的...