考試 省選73

2022-03-26 02:11:00 字數 2259 閱讀 4308

t1

看起來是個狀壓\(dp\)。

設\(dp[i][j][s]\)為前\(i\)行,放置了\(j\)個哲學家,第\(i\)行放的情況是\(s\)的方案數。

那麼對於兩個狀態,能否由上一行轉移到這一行會存在一些判斷,這些判斷暴力寫一寫就行了,也不是很噁心。

對於兩個狀態能夠轉移的話\(s_1\rightarrow s_2\),那我們就用狀壓\(dp\)暴力的在兩行之間轉移就可以了。

複雜度最劣是\(o(3n^22^6)\)的。

卡常可以過。

比如說對於乙個\(i\),\(j\)列舉的下界是\(max(0,m-3(n-i+1))\)這樣子。

然後看了一下神仙正解。

如果我們把\(dp(i,s)\)看成是\(\\)的生成函式。

那麼有:\([x^j]dp(i,s)=dp[i][j][s]\)

同時可以用矩陣進行轉移。

\(dp(i)\)為乙個列向量,每乙個位置存\(dp(i,s)\)就可以了。

然後轉移矩陣\(a\)有:\(s_1\rightarrow s_2,a_=x^\)

這樣就可以直接用矩陣快速冪了。

然而你直接用矩陣暴力乘多項式上去的複雜度就是\(o(512nlog^2n)\)的。

還不如暴力。

考慮直接用點值乘,這樣省去了乙個\(logn\)

求\(a^\)的複雜度就是:\(o(512nlogn)\)的了。

t2是01分數規劃。

我們考慮如何\(check\)乙個答案。

相當於是有\(amid-b>0\)則偏大,否則偏小。

可以二分。

\(check\)的時候算出來\(amid-b\)的最大值就可以了,判斷最大值是不是偏大。

很顯然的乙個最大權閉合子圖。

兩個點之間的貢獻拆成兩倍來做,這樣\(a[i]\)也要乘二才能保證上下相除答案不變。

然後對於兩個點的貢獻分開割就可以了。

網路流得卡常。

我寫了當前弧優化,然後被迫又把兩條邊合併。

這才卡過去。

t3很奇怪的找到三種演算法(兩種可行)。

1.\[ans=\sum\limits_^2^

\]\[g(n)=2^

\]\[(a,b)=1,f(ab)=f(a)+f(b),g(ab)=g(a)g(b),g(p^e)=2p^0

\]這個東西可以發現是直接\(min\_25\)篩就行。但是太難寫了。

所以我後面兩個都是想推出乙個複雜度比較優秀的暴力出來。

\[g(d)=2^=\sum\limits_[(g,\frac)=1]

\]\[\begin

ans&=\sum\limits_^g(i)\\

&=\sum\limits_^\sum\limits_[(d,\frac)=1]\\

&=\sum\limits_^\sum\limits_\sum\limits_)}\mu(g)\\

&=\sum\limits_^\sum\limits_^}\sum\limits_\mu(g)\\

&=\sum\limits_^\mu(g)\sum\limits_^}\frac\\

h(n)&=\sum\limits_^\frac\\

&=\sum\limits_^\mu(g)h(\frac)\\

\end

\]\[g(d)=2^=\sum\limits_[(g,\frac)=1]

\]\[\begin

ans&=\sum\limits_^g(i)\\

&=\sum\limits_^\sum\limits_[(d,\frac)=1]\\

&=\sum\limits_^\sum\limits_\sum\limits_)}\mu(g)\\

&=\sum\limits_^\sum\limits_\mu(g)d(\frac)\\

&=\sum\limits_^}\mu(g)\sum\limits_^}d(i)\\

&=\sum\limits_^}\mu(g)\sum\limits_^}\sum\limits_i\\

&=\sum\limits_^}\mu(g)\sum\limits_^}\frac\\

&=\sum\limits_^}\mu(g)l(\frac)\\

l(n)&=\sum\limits_^\frac\\

\end

\]前面列舉\(g\),然後分塊算\(l(\frac)\)即可。

這個演算法的話時間複雜度也很優秀。

\[o=\int_1^}\sqrt}dx=\sqrt\sum\limits_^}\fracdx=\sqrtln(\sqrt)

\]這樣就解決了。

考試 省選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 ...