青島二中集訓日報(D10-D12)

youlv發表於2024-06-22

D9


模擬賽.我太菜了.上來直接判定不可做了.

其實感覺T1才是那個跳躍性最強的,拿著隨機性質找暴力當正解了屬於是.T2反倒比較自然,其實就是數位dp,被唬住了沒敢細推而已.T3暴力還是很可拿的,轉換根的地方有點技巧性,不過也沒有那麼邪門.總體而言是套嚇人但不算難度特別大的題.

然後就是開題問題,不要恩做t1,也不要隨便判不可做.當然不可做的思路一定要剪枝掉,在上面硬鑽就浪費時間了.

T1

暴力:有個顯然的列舉端點查詢鏈的思路,暴力 \(O(n^3)\) ,考慮簡單最佳化一下,維護與查詢鏈中位數的最好方法只有值域線段樹,因此用主席樹,最佳化到 \(O(n^2logV)\) 期望25分.

考慮當前的矛盾點是什麼,這種做法相當於要做 \(q=n^2\) 次鏈查詢也就是說傳統的資料結構維護是不可行的.這時對於計數問題的一個重要思想就是把貢獻用某種方式合併,從而簡化計算.但是這種中位數的問題顯然不具有連續性,同時值域線段樹也沒法按分類合併.因此,直接把多條路徑同時統計不怎麼可行.

所以考慮從直接放棄前面的思路,從整體考慮問題.很容易想到列舉由哪條邊作為中位數.又顯然這樣做可以把邊排序,然後在前面的按1,後面按-1,找所有帶該條邊的權值為1的路徑.

然後又回到了找路徑的問題,雖然維護值變成和了,還是不可維護.

正解:這時候就要找題目的意圖了:隨機樹,小資料範圍.因此可以打 \(\Sigma sz\)\( \Sigma dep\) 的主意了,因此,完全可以dp了,然後在更新過程中,直接向上跳父親,透過樹高的大小,可以認為可過了.

到這裡就是暴力dp的內容了.

啟發 首先,不可做的思路一定要堅決剪掉,不然嚴重浪費時間,這種判斷力也是能力的一部分.

對於題目給的每一個條件都要會利用,但是不要鑽到裡面,例如一個勁想辦法用\(\Sigma sz\) 想要最佳化主席樹做法.儘量讓自己思路順一點,同時要有一個推進的生成思路,不能停滯在一個點,而是儘可能向前,並拆解成子問題.

T2

暴力:硬算.

正解:考慮這種與二進位制高度相關的計數問題,要麼推式子,要麼考慮數位dp,這是THUSC D1T1 的一個教訓,不要被大資料範圍嚇到.一旦變成二進位制數位dp了,直接對資料範圍帶 \(log\),看起來不可解的問題就可解了.當然不要教條.數位dp能夠解決對數字本身的限制問題的計數.而本題的關鍵矛盾就是大計數與數字統計問題計算困難的矛盾,因此應該考慮到數位dp.

這個題仔細想想有兩步大計算,推式子發現沒有什麼約化的意義,那就考慮數位dp.

首先分兩步數位dp肯定是不行的,也是沒有最佳化意義的,因此考慮同時統計.那麼要填數的變成 \(a,b,x\) 不過 \(a,b,x\) 之間有很強的約束關係,因此考慮同時對三者填數.考量情況數與條件限制的矛盾,可以發現,需要維護的僅僅是對三個量的限制是否滿足.因此可以有一個從低位向高位填數的遞推dp方案,考慮填到第 \(i\) 位,分別維護方案數和答案.方案數可以直接更新,然後答案在方案基礎上就很可算.

啟示 一方面,對於看起來不容易的問題不要改變找基本或關鍵矛盾的原則,並作出正確的判斷,也不要被一時認為此題非常困難的一種感性認知矇蔽.找到數位dp後,這道題就變得很可做了.

相關文章