考試 省選28

2022-03-26 02:11:11 字數 995 閱讀 7941

t1炸了

別的沒啥。

t1\(k>n\)我就會死,窩階乘只處理到了\(n\)。

其實挺簡單的乙個題。

就是要求關於某一段路徑,其兩端分別連線\(k\)條不相交路徑的方案。

考慮乙個點,他的兒子稱為\(ch_i\)。

那麼方案數的生成函式就是:

\[f(x)=\prod\limits_(sz[ch_i]x+1)

\]這個可以直接分治\(ntt\)來計算。

然後由於可以選這個路徑端點。

那麼最終這個點的方案數就是:

\[\sum\limits_a_k^i[x^i]f(x)

\]然後這樣就可以統計沒有祖先關係的路徑的方案了。

考慮有祖先關係的。

無非是選定乙個兒子。

然後令:\(f(x)=f(x)\frac\)

然後就直接豎式乘除暴力算就可以了。

對於乙個節點來說,最多被計算的次數是\(\sqrt\),其子樹的大小總共只有\(\sqrt\)種。

然後每個節點最多做\(\sqrt\)次豎式乘除。

而每個節點的兒子數是\(num_i\)。

複雜度是:

\[o(\sum\limits_^num_i\sqrt=o(n\sqrt)

\]t2

\(n=2,3\)的時候貪心一下就行了。

\(n=4\)的時候寫個\(dp\),表示當前已經積累的選擇的左端點個數。

然後有兩種選擇。

當前點作為左端點或者右端點。

答案就是:\(dp[n][0]\)

然而這個是\(o(n^2)\)的。

考慮用貪心做這個東西。

一直選擇當前點為左端點,如果當前的\(sum<0\)那麼就直接選擇之前最大的某乙個位置來更新答案。

t3\[ans=\left|f-\frac\right|=\left|\frac\right|

\]那麼把\(\\)捏成點。

求得就是兩點間的斜率絕對值的最小值。

按照第二維排一下序就\(ok\)。

省選測試28

題目大意 給乙個排列,翻轉k次,問最終逆序對個數的期望值 然後在用兩個字首和分別優化這3種轉移就好了 show code include define mod x using namespace std const int n 505,m 1e9 7 int n,k,a n f n n s1 n n...

考試 省選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 個點的連通塊。然...