PKUSC 2022 口胡題解
\(PKUSC\ 2022\)口胡題解
為了更好的在考試中拿分,我準備學習基礎日麻知識(為什麼每年都考麻將 啊啊啊)
最最最下面有講題的課件(可下載),題面的話可以找我要(公開之後怕是會寄)
首先\(STO\)吉老師\(ORZ,\)真的學到了好多
觀察標籤發現,這套題覆蓋知識點廣,難度適中,是一套不可多得的題
\(DAY1\)
\(T1\)
考慮過程必然是,一個值小的在參加若干輪之後超過大的,然後目前值小的參加若干輪依次交替
首先考慮單個變數
我們列舉\(i\)向後跳的第一步,假設跳到\(i-j,\)然後後面的過程是
\(i->j\)表示進行若干輪之後,中間過程不超過\(i,\)最後一次直接到\(j\)
\(i->^{k}j\)表示\(i\)進行若干輪到\(j,\)中間過程在\([i,j]\)之間到的第一個數是\(k\)
\(x_{st}=i-j,x_{ed}=i+k\)
\(Sit_1:\)我們過程中沒經過\(i-j+1 ...i\)裡面的位置,等價於事件\(i-j->i+k\)
\(Sit_2:\)我們過程中經過了\(i-j+1 ...j,\)可以拆分為事件\(i-j->l\)和事件\(l->^i i+k\)
得到如下遞推式
\(i\)從小到大計算\(p(i->i+k)\)
\(j\)從小到大計算\(p(i-j->^i i+k)\)
解方程得到\(p(i->i+k)\)
然後我們兩個變數,設\((i,j)\)表示較大值為\(i,\)較小值為\(i-j\)
然後列舉\(k\)第一個大於\(i-j\)的值
\(k<=i,(i,j)->(i,i-k)\)
\(k>i,(i,j)->(k,k-)\)
複雜度\(O(nm^3)\)
\(T2\)
很\(nb\)的資料結構\(+\)容斥
其實\(sub_4\)已經極大提示了正解
我們能貢獻的線段全部用顏色標出來,我們的貢獻大概分成這幾種型別
我們可以使用容斥,\(Sum-out,\)對於\(out\)我們只需要對於\(x,y\)分別維護兩棵線段樹使用掃描線解決
在\(x,y\)軸的線段樹維護區間和(區間和乘導數)就很容易得到了
那麼我們的正解只需要得到一個恰當的掃描序列,然後和\(sub_4\)一樣做法,可以使用平衡樹\((set)\)得到序列
這個序列保證了在詢問後面的線段一定不會貢獻,那麼\(Sum\)一定不會算進去後面的線段,前面的線段直接掃描線即可
\(T3\)
最最基礎的暴力分,可以二分答案\(+\)線性規劃(單純形隨便跑)
最基礎的暴力分,可以二分答案\(+\)網路流
正解,我們只需要找到一個能流滿的最大流即可,使用\(Hall\)引理(我\(TM\)原來沒聽過,貌似全機房都不會,那沒事了)
\(Hall\)引理(二分圖存在完美匹配的充分必要條件)
對於右部點所有子集,\(Sum(left->x)>=Need(x),\)我們對於所有的式子求一個\(Min\)即可
\(DAY2\)
\(T1\)
當我看到第一個式子的時候就半掉線了
大概聽懂了\(70\%\)
放上\(sol\)截圖,我大概是胡不出來了
大概是一個轉化成二分圖求聯通塊方案數的問題
複雜度\(O(n^3)\)
\(T2\)
首先,這題怎麼想都不會想到是隨機,啊啊啊
首先對於顏色\(x\)的邊共\(Num_x\)條,前\(Num_x-1\)條隨機賦值,最後一條為前\(Num_x-1\)條的異或值
首先如果一條路徑的異或和為\(0,\)大概率把包含的顏色所有邊都包含了(為什麼是大概率,可能會出現,兩個不同顏色的邊都不是\(0,\)異或出來\(0\),我們只需要\(mt19937(time(0))\)多次提交(看運氣能否在\(32\)發以內\(AC\))即可
我們設\(v_i\)為\(1->i\)的路徑權值,\(v_i\ xor\ v_j\)比較顯然的是\(i->j\)路徑的異或和,我們只需要對於\(v_i\)相同的求一個路徑最長的即可
題目說了對於刪點之後的操作,先求出最長路徑,最最長路徑外面的點答案必然是\(Max,\)內部的點\(x\),貢獻可以分為,左邊過來的,右邊過來的,子樹內部即可
然後我們最長路徑從左往右掃一遍,從右往左掃一遍,維護一個可插入的資料結構,每個點都查詢一下左右最大值即可
\(T3\)
比較套路的思路,比較套路的\(dp\)狀態,基本上可以參考近幾年的麻將題的\(dp\)思路
甚至可以搜尋
吉老師\(:\)我們暴力搜尋通過前\(3\)個\(sub\)的同學加了卡時之後可以獲得前\(4\)個\(sub\),而我們暴力搜尋通過前\(4\)個\(sub\)的同學可以通過增加卡時獲得\(AC\)
。。。。。。。。。。。我會了,以後一定寫