去年寫了個高三之前oi生涯的回憶錄,手賤在最後加了個「未完待續」。當然即使是現在我還是想把這個東西一直寫到我真正退役的。只不過現在還沒想好怎麼寫,甚至不確認是否應該開始寫了。斷斷續續寫了一些亂七八糟的東西,基本都是寫別人,而我自己還沒怎麼寫。然而部落格已經又很久沒更新了,我都能預見到,我寫完這篇之後他一定要審核我。
upd:媽的,竟然沒審核,瞬間打臉
去年12月去四川講了趟課(不是騙錢),發現部落格裡有許多坑,然後還把我高一的時候在湖南clj講課的課件翻出來看了看,又看到了挺多有趣的東西,雖然其實也沒多少,不過還是想發出來。本該去wc之前就發的,不過那時候比較懶,這幾天在家頹著無所事事, 就發出來吧
因為拖了太長時間可能有些東西已經忘了……
也就是說,這個新年扯皮的扯皮部分已經結束了-_-,下面是一些比較正經的東西,或許標題還是設成《比較正經的東西以及一些新年扯皮》比較恰當……
把這些東西大概寫在這裡吧,退役選手懶得把每個題單發一篇文章了,其實也沒啥玩意,不是在clj的課件裡看到的就是我之前部落格的坑,毫無創意……
這文章咋他媽分類啊,懶得把涉及到的所有知識點勾上了,就分到扯淡裡吧
可以用二進位制分組+虛樹做,把所有加點操作二進位制分組,每組建乙個虛樹,並對虛樹點分,查詢的時候在每個虛樹的點分結構上查詢
具體的實現細節的話,可以對每個虛樹維護乙個尤拉序,然後查詢前去後繼來找到詢問點在哪個邊上,從在點分結構上較低的那個開始查詢
翻課件的時候看到clj說可以用虛樹做,於是yy了一下,嫌麻煩沒寫,不知道是不是真的可做
如果去掉深度限制怎麼做
事實上我們只是要求出來每個無根子樹的重心以及這個子樹到這個重心的帶權距離和,考慮每個子樹事實上就相當於把根的所有兒子的子樹以及根合併
兩棵樹合併之後,新的重心一定在原來兩個重心之間的鏈上,所以可以在這條鏈上三分找到新的重心
因為我們最終要求的是整個子樹的重心,所以在三分的時候直接用整個子樹的帶權距離作為判斷標準即可
好像只會乙個仨log的醜陋做法
眾所周知,點分樹有乙個良好的性質就是樹高是log的,這個性質啟發我們可以去嘗試對它進行可持久化,這題還保證了是一顆二叉樹,所以就可以直接開心地可持久化了
我們把所有點按點權排序,然後挨個在點分樹上修改,並可持久化點分樹,這樣查詢的時候只需要在兩個版本分別查詢然後做差即可,複雜度比點分套線段樹少乙個log
做課件的時候推了一遍發現之前推錯了,於是重推了一遍,blackjack幫我發出來了
補充上了那個「簡單而又複雜的證明」
首先顯然如果樹就是乙個長度為3的鏈,那麼是對的
歸納證明得對於所有鏈,都是對的
繼續歸納可得對於兩條鏈相交,都是對的
繼續歸納可得對於任意的樹,都是對的
可以看這個discuss,wc的時候gxz告訴我正解是直接四分樹
說了這麼多其實我並不會建四分樹
一些基礎的東西
在c 中宣告變數使用下述的語法 但是在c 中有變數初始化的要求,即c 編譯器需要用某個初始值對變數進行初始化,之後才能在操作中引用該變數。c 有兩個方法可確保變數在使用前進行了初始化 變數是類 class 或結構 struct 中的字段 field 如果沒有顯式初始化,在預設狀態下建立這些變數時,其...
SVN的一些東西
例如 主幹mainproject,分支 branchproject 1 將分支合併到主幹 url位址路徑一定要對 找到主幹檔案mainproject,右擊 tortoisesvn merge.合併 選擇第乙個 merge a range of revisions 合併乙個版本範圍 接著在 url t...
相關的一些東西
這幾天一直在看關於http和前端效能優化相關的內容,今天先寫一篇關於http的文章,如果時間允許的話再接著把前端效能優化的寫完。畢竟還要留著時間去看小片嘛?接下來就是正文啦!瀏覽器輸入url後http請求返回的完整過程 就是下圖這個啦 這個可是我從某課網偷來的 從輸入位址到頁面渲染 在http的五層...