12.5 ~ 12.11 總結
阿新 • • 發佈:2022-12-11
12.5 ~ 12.11 總結
UOJ450【集訓隊作業2018】復讀機
\(k\) 個物件,\(n\) 個操作,每次操作選一個物件出來,需要滿足每個物件最後出現了 \(d\) 的倍數次。問方案數。\(d \le 3, n \le 10^9, k \le 5\times 10^5\)。
指數型生成函式。
- \(d = 1\), \(F(x) = e^{kx}\),答案就是 \(k^n\)。
-
\(d = 2\),構造 $ F(x) = (\dfrac{e^{x} + e^{-x}}{2} ) ^ k$ 表示
\((\{1,1,1,1,\dots \}\) + \(\{1,-1,1,-1,\dots\} ) / 2\)
二項式定理展開可以得到 \(\sum_{i+j=k} e^{2i-k} \dbinom{k}{i}\) 取 \(n\) 次項係數是容易的。 -
\(d = 3\),使用單位根 \(\omega\),滿足 \(\omega ^ 2 + \omega + 1 = 0\)。
構造 \(F(x) = (\dfrac{e^x + e^{wx} + e^{w^2 x}}{3} ) ^ k\)
注意到可以暴力算卷積,\(\sum\limits_{i+j+l=k} ...\)。
11 B
每個位置有一個顏色,求區間內顏色相同兩個數的最小距離。 \(n\le 5\times 10^5\)
使用 \(i-p_i\)
11 C
每個點可以向左邊或者右邊相聚 \(k\) 人傳遞能量,要求最後每個人到達平均值,保證可以,問最小傳遞次數。 \(n\le 10^5\)。
把每個環拉出來就是 平衡負載問題。
考慮每個點 \(i\) 最終向右邊給 \(x_i\) 個。
有這樣 \(n-1\) 個方程
以 \(x_1\)
不妨設 \(c_i = \sum\limits_{j=2}^{i}a_j - aver\)
就是要找到一個 \(x_1\) 讓 \(\sum_{|c_i - x_1|}\) 最小,取中位數就好了。
群論
HDU1883
給一些點,問一個 \(r\) 的圓最多能覆蓋多少點。 \(n\le 2000\)
答案最後可以使得一個點在圓上,那麼圓心就是一個圓,每個合法的可以被這個圓覆蓋到的是一段弧,離散下來然後差分字首和一下。