大概的意思是說,由低到高考慮不同的二進位制位。
形成乙個最小生成樹,那麼最高二進位制位不同的情況一定只出現一次。
所以除掉最高位之後的情況形成兩個集合,遞迴下去$dp$就好了。
乙個技巧是,將每個方案的最小值的總和,即$\sum \limits_min(i)$轉化為$\sum \limits_^f(min>=i)$。
然而還沒有改這個題,所以以上都是我在yy。
隱藏的很深的一道題,完全沒有思路。
頹過題解之後會發現並不難,題意要求從首位開始的數是最小的。
也就是說首位的字典序最小。
不妨考慮每乙個迴圈同構串$s$,當這個串存在長度小於$|s|$的迴圈節,那麼無論如何迴圈都無法使首位的字典序最小。
否則,只有把字典序最小的串放到最前面是合法的。
所以只要求出不同長度的不含迴圈節的串個數就好了。
然後就發現這個東西是顯然的莫比烏斯反演,容易發現要求字首和,順便推推式子寫個杜教篩就好了。
容易發現答案是方案數乘對應的多項式,其中方案數是組合數減組合數的形式。
因為組合數中選的個數$m$並不大,可以發現這個組合數實際上是$m$次多項式的形式。
要求的是組合數的平方卷積給定的係數,所以這個玩意將是$3m+1$次多項式的形式。
所以可以通過$ntt$優化插值處理出一些$f$的取值,再通過$f$的取值卷積組合數處理出一些$ans$的取值。
之後直接插值出$ans_n$就可以了。
這樣做的複雜度是對的,然而常數很大所以要瘋狂卡常才能通過。
乙個較好的優化的方法是構造乙個奇怪的函式(使組合數與插值點有關),並且保證在想要插值的點的取值相同。
這個方法就很妙,它把原式中很難維護的卷積$ans$式,變成了乙個可以遞推的簡單$ans$式,於是可以線性處理。
數學專題測試4
看到這個資料範圍多半是高斯消元。所以問題是如何處理出每局的勝率。容易發現平局是沒有意義的,要求的是最大的勝 負,這是乙個分數問題,無法進行簡單加和。所以正確的做法是01分數規劃。通過二分答案,將分母部分直接作減法。於是只要維護最大的分子 k 分母就可以了。本題的第二部分存在乙個直接計算的式子,但是我...
數學專題訓練3
這次是概率專練 選的題都比較基礎。因為我對概率的感覺很不到位啊啊啊啊 題目一 wikioi計算概率 這個就是古典概型嘛。先列舉選的第一根。然後再求出第選二根後和小於等於l的方案個數。然後答案很自然就是 這些方案個數的和 n n 1 了。考慮到n稍大。求方案數不能直接暴力。可以選擇二分來求 要注意選的...
字串專題測試1 題解
顯然只要對位合併,最後查詢不同的集合數就好了。似乎聽過乙個叫倍增並查集的東西,然而考場上沒有 yy 出來。f 表示點 i 以及 i 往後數 2 k 個元素共同被合併的祖先。對於合併操作,直接用st表的思路合併即可。考慮最終的下傳操作 列舉倍增的次冪數,設 i 向後 2 k 個元素的祖先為 f 因為並...