聯合省選 2020

聯合省選 2020

[省選聯考 2020 A/B 卷] 冰火戰士

大力線段樹卡常題。

code

[省選聯考 2020 A 卷] 組合數問題

普通多項式轉下降冪多項式,斯特林展開拆組合數。

code

[省選聯考 2020 A 卷] 魔法商店

咕咕咕。

[省選聯考 2020 A/B 卷] 信號傳遞

先將貢獻拿形式話的語言寫出,假設 $dis_i$ 表示 $i$ 的位置,那麼

- $dis_v-dis_u\space$ $v$ 在 $u$ 右面 。
- $k(dis_u+dis_v)$ $v$ 在 $u$ 左面。

每個貢獻僅與相對位置有關,對位置狀壓,$f_{S}$ 表示當前選擇的集合爲 $S$ ,且他們在 $1\sim |S|$ 位置上。

由於貢獻獨立很好轉移,只是這題卡空間所以對代價分塊維護。

code

[省選聯考 2020 A 卷] 樹

方法一

本題需要支持維護合併,插入,每個點加一,求異或和的數據結構。

考慮 $trie$ 樹維護二進制,合併,插入,求異或和與線段樹合併類似,而每個點均 $+1$ 其實是讓後綴的 $1$ 變爲 $0$ ,然後將下一位的 $0$ 變成 $1$ 。

那麼若 $trie$ 樹是從低位往高位建立那麼對應的即爲將左兒子與右兒子反轉,然後向左兒子遞歸。

實現時可以多建立一位就不用考慮 $111…11\rightarrow 100…00$ 。

code

方法二

一個點 $u$ 做的貢獻是他的根的鏈,若按位考慮可以看成有許多個區間是相同的。

可以發現如果當前考慮第 $k$ 位那麼循環節類似長成 $00…0111…1$ ,注意有可能循環移位,其中 $0$ 與 $1$ 均有 $2^{k}$ 個。

那麼差分以後就僅有 $2$ 個元素有數,他們在 $\pmod {2^k}$ 意義下是相同的。

對應在樹上即爲他們在深度 $\pmod {2^k}$ 意義下是相同的,記錄一下未進入子樹與進入子樹分別的差分值異或即爲該子樹爲當前點提供的差分值。

code

[省選聯考 2020 A 卷] 作業題

反演後跑矩陣樹定理。

code

[省選聯考 2020 B 卷] 卡牌遊戲

前綴和累計。

code

[省選聯考 2020 B 卷] 消息傳遞

點分治。

code

[省選聯考 2020 B 卷] 幸運數字

離散化區間,差分計算。

code

[省選聯考 2020 B 卷] 丁香之路

假設當前我們需要求 $S\rightarrow T$ 的答案,不妨從上帝眼光審視一下就能發現僅有 $S$ 與 $T$ 點的度數爲奇數,其餘點均爲偶數。

事實上走過的圖肯定是個 $S\rightarrow T$ 的歐拉路徑,爲了方便我們將 $(S,T)$ 的邊假設連上,那麼每個點的度數均爲偶數。

那麼我們的問題變爲現在有度數爲奇/偶的點,需要再連邊使得每個點度數均爲偶數且圖聯通,求最小化邊權和。

由於 $w(i,j)=|i-j|$ ,那麼肯定選 $w=1$ 的路徑是最優的,那麼我們僅考慮選取 $w=1$ 的路徑。

假設當前奇數點共 $2k$ 個,考慮前綴中有 $x$ 個奇數點( $x$ 爲奇數),顯然 $x,2k-x$ 均爲奇數,且肯定有一條從左側中連向右側的邊,那麼必定存在從 $x\rightarrow x+1$ 的邊,不妨先僅選取 $x\rightarrow x+1$ 。

我們會選擇 $k$ 條邊,並且現在的圖已經不存在奇數點,但是圖不連通。

和剛纔類似,如果我們在聯通塊之間連邊,那麼他們之間肯定又會存在一條新邊。

換句話說,如果兩個聯通塊之間連一條邊,那麼肯定會連相同的第二條邊。

那麼我們僅需要考慮連一條邊,這個過程相當於求 $MST$ 。

對上述過程暴力維護,時間複雜度 $\mathcal O(n^2\log n)$ 。

code

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章