最近發現的一些trick(naive) & 學車膜你賽題解


最近發現的一些trick(naive) & 學車膜你賽題解

大鴿子更博了!

ARC093F Dark Horse

\(2^n\) 個人,每次相鄰比試,比試到只剩一人。\(x<y\)\(x\) 獲勝。\(1\) 選手想獲勝,但它會輸給其中 \(m\) 個選手。求初始序列的方案數。

\(n,m\le 16\)

一道狀壓 \(dp\) + 容斥原理的好題。

(居然是自己想出來的)

\(f_{i,j}\) 表示給定選手 \(i\sim m\) 決定是否強制為集合的最小值時,集合大小 \(2^0,2^1,...,2^{n-1}\) 選擇的情況。

\[f_{i,j}\times {2^n-a_{i-1}-j \choose 2^k-1}\times k!\rightarrow f_{i-1,j|2^k}[j\&2^k=0] \]

\[ans=2^n\times \sum_S(-1)^{|S|}(2^n-1-S)!\times f_{1,S} \]

小 trick: 計數中對組合意義的轉化

有些題目在模很小的質數,如 \(2\) 時,挖掘特殊性質

給定一個無向連通圖 \(G\),問其誘導子圖連通的方案數,對 \(2\) 取模。

\(n\le 50,1\le |a-b|\le 12\)

注意到一個圖,有 \(k\) 個連通塊,那么它黑白染色的方案數為 \(2^k\)

我們先求子圖黑白染色的方案數,因為連通塊 \(\ge 2\) 時須忽略,故對 \(4\) 取模除二即為答案。

狀態就很簡單了:黑色,白色,不選。時間 \(O(n3^{12})\)。其實 \(n^23^{12}\) 也跑得過去。。。

對於 \(\prod_{i=1}^k a_i\) 時組合意義的轉化

相當於在 \(k\) 個集合中,每個集合大小為 \(a_i\),各選一個的方案數。

比如 神佬來切切吧

\(\text{WC2019}\) 數樹更是結合了 \(\text{prufer}\) 序列的推論:\(k\) 個連通塊,\(\sum_{i=1}^{k}a_i=n\),方案數為 \(n^{k-2}\prod_{i=1}^{k}a_i\)

真是一道不可多得的好題!


突然發現學車送了三套題,質量還可以。其中一套沒 latex 所以沒做。

prime

min25 篩模板,隨便做。

tree

這么好的題目居然沒人做 QAQ

\(\sum_{y\in S}dis(x,y)\),先建個虛樹,在虛樹上換根 dp,處理出每個點子樹和子樹反樹的 \(\sum dis^2,\sum dis,\sum 1\),這樣就可以合並了。

因為 \(z>0\),所以答案點一定在虛樹一條鏈上。我們設 \((a,b,c)_{1,2}\) 分別為子樹和子樹反樹的 \(\sum dis^2,\sum dis,\sum 1\)

\[ans=a_1+2b_1x+c_1x^2+a_2+2b_2(v-x)+c_2(v-x)^2 \]

\[ans=a_1+a_2+2b_2v+c_2v^2+(2b_1-2b_2-2vc_2)x+(c_1+c_2)x^2 \]

根據初中數學知識,\(x\) 越接近 \(-\frac {b}{2a}\) 二次函數越小,這樣的話我們倍增上去,找到一個點,恰好使得 \(dis_{x\rightarrow z}\le \Large\frac {vc_2+b_2-b_1}{c_1+c_2}\),這樣計算一下 \(z\)\(fa_z\) 的答案就行了。

另外就是,倍增上去的時候,若 \(-\frac {b}{2a}\) 下取整 \(=0\) 也是在范圍內的。因為有可能是 \(-\frac {b}{2a}=0.80\),答案在 \(fa_x\)。若不在 \([0,v)\) 的范圍內,最小的答案肯定在虛樹上的點。

時間 \(O(\sum k\log n)\),我認為這是道好題。

triangle

我們把所有點和直線的交點拿去離散化,跑掃描線。這樣區域就變成了一些梯形和三角形,且過一個區域的直線不相交。因為若相交,掃描線時會分成兩個區域。

這樣子你把直線拿去離散化,有兩條直線的話相當於在上面區間加,單點查。若一塊區域被覆蓋 \(k\) 次,它的貢獻為 \(S\times (2^k-1)\times 2^{n-k}\)。時間 \(O(n^3\log n)\)

inv

md,隨機居然是這么用的,233

類似 k-d tree 查詢最近/遠點對,復雜度大概是 \(O(n\sqrt{a}\log n)\)

perm

一眼秒了,只是沒看出有更簡單的做法。

\(f_i\)\(i\) 個點正好連成大小為 \(i\) 的環的方案數。長度在集合之內就是把一些數設成 \(0\),不用管它。答案為 \(ans_t=t!\times [x^t]e^f\)

\[f_0=0,f_1=1 \]

\[f_i=i!-\sum_{j=1}^{i-1}f_j\times {i-1\choose j-1}\times (i-j)! \]

\[f_i=i!-(i-1)!\times \sum_{j=1}^{i-1}\frac{f_j}{(j-1)!} \]

然后我就直接分治 FFT 了。。。

一看別人寫的,cnm,這么簡單。。。有一個結論:\(f_i=(i-1)!\)。用數學歸納法容易得出。

接下來就是多項式 exp 的事了,時間 \(O(n\log n)\)

dlds

碼農題。。。估計考場上我如果能寫出這題就 rp 爆表了。。。

想都不想,直接樹套樹,動態開點線段樹套fhq treap,封裝一下。雖然這題不僅卡時間還卡空間,不過 12s 即使操作 5 時間 \(O(\log^3 n)\) 其他操作時間 \(O(\log^2 n)\) 都能過吧。。。快速訪問用個 deque,碼碼碼就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM