1. 程式人生 > 其它 >NOI2022省選挑戰賽 Contest12

NOI2022省選挑戰賽 Contest12

T1.

求平面內兩兩不相交的 矩形三元組個數 $ n <= 2e5$


一開始想著分類討論,不過不是很可做,於是想了一下對於相交的矩形連邊,不過沒細想,就寄了


加入我們現在有一個很快的方式,對於原圖的兩個矩形如果相交就連一條邊

相當於是求,這個無向圖中,大小為3的獨立集個數

考慮 選中的三個點 之間的邊的數量,來求出ans

邊數為0,即為答案

邊數為3,為原圖中三元環個數

邊數為2,列舉每個點,然後相鄰的節點選兩個 減去 三元環個數

邊數為1,列舉每個點,然後選一個點伸出去,然後在原圖選一個點不與第一個選擇點相交,最後方案數 - 2 就是1

最後 邊數為0 = 總 - 3 - 2 - 1

最後只要統計,每個矩形,在原圖中的 每個 度數之和即可


考慮對於一個矩形如何統計其 在新無向圖裡面的度數

考慮掃描線

有兩類情況

令現在統計的是 now ,to是現在加進來的矩形

now的左邊界先出現,那麼只要在 to的左邊界進去的時候,直接對左端點以及在裡面的更新一下就好了

考慮將to加進去,即前面有的矩形數

考慮處理矩形——去重

可以考慮差分,就可以得到一個區間的覆蓋矩形個數

即維護兩顆線段樹

一個維護整體加法

一個維護區間差分

然後就可以維護每個矩形的度數


T2.

sol.

沒有問號,直接區間/狀壓dp做一下就好了

考慮有問號,就寄了


好像是之前正睿的一個加強版

之前正睿那個是 dp套dp隨便搞搞

而這個就更高妙一點了

是直接在DFA上面考慮的

考慮雖然DFA的狀態可以看成無限的

可以發現,在這個DFA上,很多狀態都是可以相互到達的,所以就直接揚了

只用考慮長度為10的新增序列到另一個