考試 省選80

2022-03-26 02:11:00 字數 779 閱讀 9291

t1

倉鼠講的\(dp\)巢狀原題。

考慮對於乙個確定的\(t,v\)如何\(check\)合法。

設\(dp[i][a][b][c][d]\)為最高的前\(i\)位,\(x\)是否觸及上界/下界,\(y\)是否觸及上界/下界。

那麼我們把這個狀態壓一下。

設\(dp[i][s]\)為所有可以由狀態的集合\(s\)得到的\(v\)的個數。

那麼就可以轉移了。

複雜度是\(o(602^2^6)\)

\(if\)剪掉大量的枝。

t2按照步子分塊。

小於等於\(b\)的部分我們開\(b\)個線段樹存,打整體加法標記。

大於\(b\)的部分我們直接暴力模擬,用乙個樹狀陣列存,每次把位置大於\(1e5\)的跳蚤捨棄掉。

考慮複雜度,是\(o(bqlogq+\fracqlogq)\)

這樣的話我們的\(b\)取\(\sqrt\)比較優秀,複雜度就是\(o(q\sqrtlogq)\)得了。

t3很久之前做的狀壓題的正解打法。

我們把狀態都找出來,然後發現\(n=3\)的時候有乙個情況很特殊,第一格和第三格不屬於同乙個連通塊和屬於同乙個連通塊,這樣要區分開。

最終狀態一共有9個。

然後對於這些狀態我們發現\(dp\)的轉移可以用轉移矩陣來表示,其中矩陣的每乙個元素都是乙個單項式。

這樣我們的\(dp\)定義變成多項式。

然後發現直接乘複雜度**了。

我們分別帶入單位元然後做矩陣快速冪求出點值,然後再逆向\(idft\)插回\(dp\)陣列定義的多項式就可以了。

考試 省選96

t1 這個題就是考慮去大力分類討論。首先可以知道 k 3 的情況答案肯定是0.那麼分類討論 3,2,1,0 的情況。首先是 k 3 的情況。這個情況很簡單。首先 m 必須為3。就是我們考慮一下用總的方案去掉鈍角三角形的方案。那麼答案就是 ans binom n sum limits 1 i 這很簡單...

考試 省選95

t1 大神說是打個表找規律啥的。我利用生成函式 吉夫特那個題的結論推出來類似的結論。就是說對於所有深度為 i 的點,其對答案有貢獻,當且僅當 t i 0 這樣的話就可以直接用乙個 orfwt 來做了。t2生成樹計數原題。比原題還簡單。可以把 a i 抽象成乙個點變成乙個含有 a i 個點的連通塊。然...

考試 省選86

t1 首先設出暴力的 dp dp i j k l 為前 i 個點中有 j 個白點結束方案為奇數,k 個黑點結束方案為偶數,當前全部的結束方案之和奇偶性為 l 的方案數。那麼可以很簡單的轉移。在考慮轉移時候的係數。其實只跟 j,k 是否為0有關係。那麼狀態大大化簡為 dp i 0 1 0 1 0 1 ...