概要:對樹鏈剖分進行收尾和小結,挺進ac自動機(要快,效率要高!)
(一)樹鏈剖分的幾個總結:
①【lca】(bzoj3626)
主要目的就是要優化這道題的時間(思路是從暴力演算法入手,然後使用資料結構--樹鏈剖分+線段樹去優化)。
·正確處理乙個關鍵問題即可突破此題:區間[l,r]與z點之間的關係。【處理不同性質的問題,有一種入手方式是將其轉化為同一性質的問題】可以想到一種集合關係:
-------------
ans[l,r]=ans[1,r]-ans[1,l-1]-----------
·最後來跑一跑sort(),這也算是一種常用而高效的優化方式了:改變列舉順序,以達到貪心目的或正確狀態。
②【2015noip運輸計畫】
dfs序,就是這樣。樹鏈剖分可以寫,但是沒有必要。在入和出的時候予以標記,權值分別為正負,程式格式是這樣的,十分清晰:
void dfs(int u)為了方便回憶,再來乙個舉例:
題目回憶到此為止。這是集訓第一天,上午課堂很高效,但在下午ac自動機的一道涉及矩陣乘法的題讓自己去尋找和理解預備知識「矩陣」就花了很長時間,效率不高(中午睡覺時間有點不夠)。這是乙個問題:我們對於這種超知識範圍的題是否應該深鑽?【或許太耗時間而且沒有途徑系統學習】
這個問題留給張姐來解決。
回首望去常規那邊,只剩大公尺餅了…
張姐還在調ac自動機,(她說:我很累)
lence在………………
袁yt在做二分題,
王sy在…………………
不要放棄,大不了再給你乙個大公尺餅。
don』t give up,anyway we can still get a big-riced pancake!
wsy:lca這個題哪門做的?
集訓第一天
1.兩個正整數,它們的乘積等於它們的最大公約數和最小公倍數的乘積。2.記憶法。用乙個陣列儲存計算的結果,而不是每次迴圈都計算一次。3.輸入多組資料 int n while n scanf 4.輸入 include using namespace std int x,y cin x y cout 5....
集訓第一天
熟悉系統程式設計,了解read open write fread fopen fwrite open開啟檔案o creat若欲開啟的檔案不存在則自動建立該檔案,o rdonly以唯讀方式開啟檔案 最後加入許可權 00700 等 定義函式 ssze t read int fd,void buf,siz...
集訓第一天
open.c include include include include include include int main fd open hello.c o rdwr 讀寫方式開啟存在的檔案 if 1 fd fd open hello.txt o rdwr o creat,00700 先建立檔...