2020 01 16 省選組 模擬

2021-10-02 06:32:42 字數 483 閱讀 6316

這套比賽目前只改出一題。

t1:首先我們發現對於k個關鍵點構成的一棵樹,最有答案一定是2*sum-maxdis,其中sum表示所有邊權的和,maxdis表示直徑的長度。知道了這個之後我們就可以分兩部分算答案。

首先計算sum。我們列舉每一條邊,然後計算這一條邊可能出現在關鍵樹上的方案數。設這條邊的一側有x個關鍵點,另一側有y個關鍵點(顯然x+y=m),那麼這條邊出現在關建樹中的方案數就是c(m,k)-c(x,k)-c(y,k)。

然後計算maxdis,我們列舉兩個關鍵點u、v,接著計算u~v這條鏈成為直徑的方案數。這是我們還要列舉一下其他關鍵點,判斷一下其他關鍵點是否能出現在u~v這條直徑的關建樹中。具體方法就是對於乙個關鍵點x,若dis[x][u]現在假設對於一組u、v有s個合法的s,那麼這組u、v作為直徑的方案數就是c(s,k-2)。

至此我們就完成兩部分的計算了。在求兩關鍵點間的距離時我們可以用虛樹的思想來求。

t2:題解待更新。

t3:題解待更新。

2019 08 12 省選組 模擬

t1 這題的題意有點難懂。其實題目就是要我們先讓所有工人把該學的都學了,然後使得無論工人們在那種選擇的情況下都可以讓所有機器都有人操作。推一推不難發現 我們把整個二分圖分成若干個連通塊,所有機器都有人操作的充要條件就是每乙個連通塊都是乙個完全二分圖 即左邊的每乙個點向右邊的每乙個點都有連邊 那麼我們...

2020 06 06 省選A組 模擬

t1 首先這題可以通過推式子 考慮相鄰兩個位置的優劣情況 發現最優解應該是按照a t從大到小的順序來解題的。所以我們可以求出最優解的序列,現在要求的就是c的最大值。但這時我們會發現可能會有多個a t相同的點,所以我們求出每一道題可能出現的最早和最晚的時間,這兩個時間就等於這個點在a t相同的這一塊中...

2020 09 05 省選組 模擬

t1 首先用tarjan求出所有的點雙,然後建圓方樹。具體的建法是將當前點雙的割點作為父親向乙個新建的方點連邊,然後方點在想點雙中其他點連邊。在建好圓方樹之後我們就樹形dp。設f i 表示從i的子樹到i的最長鏈的長度。對於每個x,如果x為圓點則像常規一樣轉移 若x為方點則要處理一下 把當前方點對應的...