原创 AGC014E Blue and Red Tree [啓發式合併]

Description: 一棵樹的邊全部是藍色的,每次可以選擇一條全是藍色邊的鏈,刪除其中一條邊並用紅邊連接鏈的端點。問是否可以變成另一棵樹。 Solution: 倒着考慮這個過程,發現每次相當於連接兩個同時在兩棵樹都有邊的

原创 [Haoi 2008] bzoj1045 糖果傳遞 [數學]

Description: 有nn 個小朋友坐成一圈,每人有aiai 個糖果。每人只能給左右兩人傳遞糖果。每人每次傳遞一個糖果代價爲11 。求代價最小。 Solution: 設第i−1i−1 個人傳給第ii 個人xixi 個,

原创 bzoj4373 算術天才⑨與等差數列 [線段樹+平衡樹]

Description: 單點修改,詢問區間是否構成公差爲kk 的等差數列。 Solution: 公差爲kk 的等差數列可以改成以下性質: 11 .相鄰兩項差的gcdgcd 22 .最大值與最小值的差爲(r−l)∗k(r

原创 [Oibh] bzoj2259 新型計算機 [最短路]

Description: 從前往後先讀取第一個數字S1S1 ,然後順序向後讀入S1S1 個數字。接着再讀一個數字S2S2 ,順序向後讀入S2S2 個數字………… 依此類推。只有所有的數恰好讀完的序列纔是合法的。 給出一個輸入序列

原创 AGC001F Wide Swap [線段樹+拓撲排序]

Description: 給出一個排列pp ,兩個元素可以交換當且僅當|pi−pj|=1|pi−pj|=1 且|i−j|>=k|i−j|>=k ,求pp 的最小字典序。 Solution: 轉換一下,構造序列qq ,qpi=

原创 [HNOI 2015] bzoj4009 菜餚製作 [拓撲排序]

Description: 給出一些關係,形如<i,j><i,j> 表示i需要在j前面,求出滿足小的元素儘量在前面的序列。 Solution: 倒着拓撲排序。考慮正確性,當前有i,ji,j 兩個元素,且i>ji>j ,把j放在

原创 bzoj3329 Xorequ [數位dp+矩陣乘法]

Description: 看題去。 Solution: 我們可以轉化成xx xorxor 2x=3x=x+2x2x=3x=x+2x 那麼也就意味着不能消去任何一個11 ,所以要求x沒有相鄰兩位有1。 第一問數位dpdp

原创 hdu4336 Card Collector [容斥原理]

Description: nn 個物品,每次購買一個,有pipi 的概率選到第i個物品,問獲得所有物品的期望次數。 Solution: 根據min−maxmin−max 容斥,有E[max(S)]=∑S′∈S(−1)|S′+

原创 ARC076F Exhausted? [Hall定理]

Description: nn 個人,每個人可以選[1,li][1,li] 和[ri,m][ri,m] 的位置坐下,問最少有多少個人沒有位置。 Solution: 根據HallHall 定理,我們有最大匹配=n−|S−Λx|

原创 AGC002D Stamp Rally [整體二分]

Description: 一張無向聯通圖,給兩個頂點xixi ,yiyi ,問需要最大邊的編號最小使得和兩個點聯通的點數>=zi>=zi 。 Solution: 整體二分,並查集維護連通塊大小。 #include <bit

原创 bzoj4671 異或圖 [搜索+線性基+斯特林反演]

Description: 定義兩個結點數相同的圖G1G1 與圖G2G2 的異或爲一個新的圖GG , 其中如果(u,v)(u,v) 在G1G1 與 G2G2 中的出現次數之和爲11 , 那麼邊(u,v)(u,v) 在GG 中,

原创 bzoj1430 小猴打架 [prufer序列]

Description: 無根樹計數。 Solution: pruferprufer 序列一共有n−2n−2 個位置,每個位置有nn 個選擇,所以一共有nn−2nn−2 種方案。每種方案可以(n−1)!(n−1)! 種方案連

原创 CSA Expected Max [dp+概率期望]

Description: mm 個操作,nn 個位置,每個操作會隨機選一個位置加上[0,c][0,c] 中的隨機值,問期望最大值。 Soution: f[i][S][j]f[i][S][j] 表示第ii 個人操作集合爲SS

原创 [Tyvj 1953] bzoj3451 Normal [fft+點分治+概率期望]

Description: 每次點分治隨機選重心,問期望複雜度。 Solution: 每次點分的複雜度可以看成和重心形成的點對數量,那麼uu 爲重心時和vv 形成點對的概率是1dis(u,v)+11dis(u,v)+1 。意思

原创 [NOI 2009] bzoj1566 管道取珠 [dp]

Description: 有兩種珠子,有兩個管道,每個管道里有一些珠子,每次可以從上面或下面取珠子構成序列,問構成相同序列的操作對數。 Solution: 考慮dp[len][i][j]dp[len][i][j] 表示當前取