2020HDU多校出題總結

2022-05-11 09:28:01 字數 1484 閱讀 5710

因為比較菜,這次多校只負責了乙個題的出題,2020hdu multi-university 5 1007 tree(現已掛到hdu6820),出題總結之前因為考試咕了很久。

這道題idea基本就是想著要出樹形dp,所以構思了很久就想出了這道題。本來的題目是要求子樹所有的點度都小於\(k\),但原來的題目轉移方程很好寫,基本10分鐘左右就寫好了,畢竟是多校,難度還是要加強,後來想了很久,有了現在的版本,題目改為了度數超過\(k\)的至多乙個點,其餘都小於\(k\),這樣一來轉移方程難寫不少,需要維護的內容也多了有乙個點度大於\(k\)的部分,難度算是加強了不少。

感謝fblogy學長,雖然已經保研北大,但還是幫助我check過了我題目的解法,確認無誤,我才敢出的題。同時也祝fb學長研究生階段能夠順利。感謝edwardwsb幫我進行了驗題。

原先的題目表述和實際題目也不一樣,原來的描述是要求子樹能夠找到乙個點作為根節點,使得樹上所有點兒子數量都小於\(k-1\),這樣等價於度數度數小於\(k\),轉化為下現在的題目描述。原來題面描述方法其實是為了騙大家去寫換根,找乙個子樹,根節點任取,題目描述就很換根,隨後被學長要求將題面描述改為現在的版本,不繞圈子了,因為學長說這結論很顯然,騙不到大家,不會有隊伍寫換根的。而比賽時,即使是現在的題目描述版本,很多隊伍也都寫了換根。關於到底是原先的描述還是現在描述更好估計也很難說,不可能再辦一場看大家怎麼做題了,效果也不好說。另外就是比賽時有隊伍提問了度究竟是運算元圖還是原圖,這部分後來我看了下描述的確實不夠清楚,題面有點小瑕疵。

在出題的時候是有考慮的換根做法的,但當時我想到底換根做法和現場很多隊伍的都不太一樣,我是用來維護原來維護最終題解所說的某個點不和其父節點連線的情況,即這個點和它的\(k\)個兒子直接相連情況,當時考慮了下好像也沒什麼辦法卡掉,而且感覺維護起來也比樹形dp難,覺得沒什麼卡的必要,就沒怎麼管。

而實際比賽,結束後問了前隊友,說是換根列舉那個度超過\(k\)的節點,那這種做法最後其實只需要一維\(dp\)就行了除了換根稍微麻煩一點,這個做法\(dp\)轉移方程好寫得多,而且也很好想。關於這種換根做法,結束後想了下其實是可以卡掉的,把不超過乙個改成\(2\)個就行了,就沒辦法列舉這個點了,雖然相應地樹形\(dp\)也會更難寫,但我覺得卡掉換根可能會更好。當時想了換根但和實際很多隊伍換根做法不一樣,感覺有點鍋,在對於題解之外的做法考慮不夠全面。

這道題資料還是比較好出的,菊花圖,長鏈都出了幾組,邊長隨機資料基本就足夠強了,然後對於並查集維護的貪心做法也進行check,確保過不了,複雜度的話考慮了下其實標程可以寫到\(nlogk\),用堆維護,但想了下\(nlogn\)更好寫,況且\(k\)本來就可以達到\(n\)的大小,優化差距不大,就沒有這麼寫,直接寫了排序。

開賽大概10分鐘左右就有隊伍開這題了,還是預料之中的,但是最後的通過率是我沒想到的,\(120/1174\),\(只有10.22\%\),尤其終榜rank1的杭州市第二中學team0368一共8發錯誤提交。在30分鐘之前,看著0/27的提交,我已經做好了被掛上知乎噴的準備,開始懷疑人生,畢竟北大,清華,杭州第二中學等強隊提交全部錯誤讓我以為我資料錯了。但是,好在30分鐘時候北大ac終於讓我吃了定心丸。

2020hdu多校第三場比賽及補題

1004 tokitsukaze and multiple 隊友半小時內a了這題,強的一匹 給一列數,每次可以把相鄰的兩個數合併成乙個大數 比如12,74合併成86 給乙個數字p,問通過這樣的操作,最多能使這數列中多少數是p的倍數 舉例 p 3,數列為 2,1,3,2,1 該數列可以變成3,3,3,...

hdu多校題解

給定 n 求 sum limits sum mu d frac sum frac 再令 h n sum frac 則有 g n frac sum mu d frac h frac 推導 f 和 g 的關係 f n f sum limits frac sum limits g n g f n f 2 ...

2020多校聯考 樹

沒有定根就非常的離譜,後來告訴根直接就是 1 先考慮鏈上怎麼做,顯然維護乙個單調棧,求出第乙個比當前數大的位置,然後倍增即可。再放在樹上怎麼做?依舊維護單調棧,但這次不能暴力地彈掉棧頂元素了,因為這樣的複雜度是假的。因為單調棧有單調性,所以直接在單調棧內二分出單調棧彈得不能再彈的位置,然後修改 to...