2020 09 05 省選組 模擬

2021-10-09 09:37:55 字數 399 閱讀 5047

t1:首先用tarjan求出所有的點雙,然後建圓方樹。具體的建法是將當前點雙的割點作為父親向乙個新建的方點連邊,然後方點在想點雙中其他點連邊。

在建好圓方樹之後我們就樹形dp。設f[i]表示從i的子樹到i的最長鏈的長度。對於每個x,如果x為圓點則像常規一樣轉移;若x為方點則要處理一下:把當前方點對應的點雙中的點拉出來排成一列,然後複製一遍(處理環的情況)。接著我們列舉i、j(it2:我們只討論左小右大的情況,左大右小的直接將整個數列去相反數即可。

首先設l[x]表示從x往前第乙個比a[x]大的位置+1,r[x]表示往右第乙個比a[x]小的位置-1。

若乙個區間[l,r]是合法的,那麼必定存在r[l]>=r且l[r]<=l。反過來推也是對的。

現在我們列舉右端點r,每次r往後移一位時,對於那些r[x]t3:李超樹模板題。

2019 08 12 省選組 模擬

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

2020 01 16 省選組 模擬

這套比賽目前只改出一題。t1 首先我們發現對於k個關鍵點構成的一棵樹,最有答案一定是2 sum maxdis,其中sum表示所有邊權的和,maxdis表示直徑的長度。知道了這個之後我們就可以分兩部分算答案。首先計算sum。我們列舉每一條邊,然後計算這一條邊可能出現在關鍵樹上的方案數。設這條邊的一側有...

2020 06 06 省選A組 模擬

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