原创 長鏈剖分優化樹形dp

apio鐵牌告辭(開場想打暴力然後gedit碼代碼5個小時沒寫完三題最低檔暴力真是快樂),聽課也就學到了一丟丟這個東西。 模板題: https://www.luogu.org/problemnew/show/P5384 首先k級兄弟可以一

原创 全局平衡二叉樹學習筆記

感覺是樹剖和lct的一種結合,把樹剖的log^2變成log,把lct的常數變小,但是能維護的東西也有侷限性... 實際上就是有時候維護的東西不需要lct的link-cut操作,所以可以將樹建成一棵棵二叉平衡樹連在一起而不需要splay。具

原创 CF868F 分治優化dp

鏈接:https://codeforces.com/problemset/problem/868/F 首先n^2m的dp很容易想,f(j,i)表示考慮劃分了j個集合,最後一個集合結尾在i的最小值。顯然它具有決策單調性,即如果f(j,i)最

原创 「LibreOJ NOI Round #2」不等關係

主席花費1sec秒的題,我看着主席的題解想了一年。。 鏈接:https://loj.ac/problem/575 考慮容斥其中大於或小於其中一個限制,推式子,然後上分治fft優化。 具體的Orz主席https://www.cnblogs.

原创 CF848E Days of Floral Colours

鏈接:https://codeforces.com/problemset/problem/848/E 被拿來做訓練題,兩個小時碼出n<=25爆搜30分。。。 帶圖更詳細的做法可以直接看官方題解:https://codeforces.com

原创 [NOI2018]你的名字

https://www.luogu.org/problemnew/show/P4770 sam根本不理解.jpg,自己想只會搞一個n根號的做詢問1~n的垃圾68分做法 真實做法我是對着洛谷little_gift大佬的題解學的,寫的很好。

原创 prufer序列學習筆記

可以用於處理一類有關生成樹計數類的問題。 prufer序列是有關無根樹的序列,並且n點無根樹能唯一對應n-2長度的prufer序列。 一、prufer序列生成方法: 把無根樹裏所有度數爲1的點定義爲葉子,重複執行以下操作直至原樹裏只剩下兩

原创 斯特林數-離散微積分學習筆記

一、定義 1.第一類斯特林數: 表示方法:S1(n,m)或[nm]n \brack m[mn​] 組合意義:指n個點組成m個圓排列的方案數。 遞推求法:S1(n,m)=S1(n-1,m-1)+(n-1)*S1(n-1,m) 快速求法:

原创 agc 033 D-Complexity

https://atcoder.jp/contests/agc033/tasks/agc033_d 場上沒想出來...做法:可以發現答案上界是log(H*W)的,所以考慮暴力枚答案,那麼的當前狀態可以表示爲選取(r,c)和(r',c)兩個

原创 zjoi day2 語言

https://www.luogu.org/problemnew/show/P5327 最可做的題結果場上根本沒想打了60分,後來聽說想寫正解的都被卡了......做法:考慮對一個點x來說,可以到達它的點一定構成一個樹上包含x的連通塊,而

原创 帶修改主席樹學習筆記

在主席樹的外層套樹狀數組,即下標爲x的線段樹維護x~x+lowbit(x)的區間,修改很簡單,查詢的話就把log個需要用的樹提取出來,每一層查詢個數和k比,在樹上往左往右走。 時空都n*log^2 模板題: https://www.luo

原创 可持久化trie+線段樹分治題 火星商店

鏈接:https://www.luogu.org/problemnew/show/P4585 做法:首先觀察到每個人能買的商品是一段區間,考慮將這個區間拆成log段存在線段樹節點上(開vector),這樣就可以考慮對線段樹每個節點所代表的

原创 bitset做多維偏序

很久以前就聽說這個大名鼎鼎的東西(暴力)了,現在纔去寫。其實很簡單,對每一維排序,從左到右掃,維護一個bitset表示這位之前的某個點是否出現(即出現則該位爲1否則0),查詢某個數時則在每一維的排序完數組二分找到最右邊<=這個數這一維權值

原创 可持久化數據結構

1.可持久化線段樹(可持久化數組) https://www.luogu.org/problemnew/show/P3919#sub 最基礎的可持久化數據結構,每次修改開新的log個點即可。 #include<bits/stdc++.h>

原创 [Topcoder SRM 590]Fox And City

將原來就有的邊轉化爲|dis(u)-dis(v)|<=1的約束,然後建圖最小割,一個點拆n個點的從S到T的鏈表示最終離0號點距離的情況,然後在T中的點pt(i,x)表示滿足dis(i)<=x,在S中的點表示不滿足,而要保證這些限制就從T到