訓練日記 20170419

2021-07-30 20:16:49 字數 1137 閱讀 8083

題意:二維平面上有n(

n≤200,

000)

個傳送門,第i 個傳送門位於(x

i,yi

) ,且可以傳送到以自身位置為左下角,以(a

i,bi

) 為右上角的平行座標軸的矩形中任何乙個其他傳送門。任意選定起點和終點,求從起點傳送到終點的路徑上最多經過多少個傳送門。座標範圍在0∼

200,

000 之間。空間限制512mb。

題解:乙個很容易想到的方法是用二維線段樹維護最大值,但這樣會mle+tle。通過動態開節點可以解決mle的問題。注意到如果將傳送門按橫座標降序排序,可以將第一維線段樹轉化成字首最大值查詢問題,改為樹狀陣列可以減小常數。對於座標重合的傳送門,需要共同處理。理論上這樣就能通過本題,但我寫得太醜陋,常數大了一倍,不知如何卡常。

題意:給出乙個n(

n≤100,

000)

個節點的樹,每個節點有乙個權值,接下來有q(

q≤200,

000)

次操作,操作有如下兩種:

1. 給出x,

y,c ,將鏈(x

,y) 上的點和鏈(x

,y) 的所有相鄰點的權值加上

c 。

2. 給出x,

y, 詢問鏈(x

,y) 上的點和鏈(x

,y) 的所有相鄰點的點權和。

題解:任意選乙個根節點之後,在每個節點記錄兒子的權值和,這樣對一條鏈的修改操作可以用線段樹實現。考慮一次修改操作(x

,y,c

) ,其等效於(x

,roo

t,c)

+(y,

root

,c)+

(lca

,roo

t,−c

)+(f

a[lc

a],r

oot,

−c)+

單點修改(l

ca,c

)+(f

a[lc

a],c

) ,其中lc

a 表示x,

y 的最近公共祖先。在樹鏈剖分的基礎上可以實現。

訓練日記 20161024

初賽好像不會掛了,好開心!版權原因,不上傳題目。題意 求1 n n 1000 的排列中逆序對恰好為 k 個的排列數目。多測。題解 f i j 表示前 i 個數,逆序對個數恰好為 j的排列個數,易得轉移方程f i j i 1k 0f i 1 j k 用字首和優化可使複雜度降為o n2 題意 對於乙個長...

訓練日記 20170324

長久不更新部落格了。期間經歷了恰好被ag線踩的wc,經歷了漫長痛苦的小高考準備。現在終於可以重整旗鼓,向省選進發!幾個月來,唯一不變的是我仍然是個超級蒟蒻 版權原因,不上傳題目。題意 最小樹形圖 去年就接觸 聽說 過的演算法,一直沒有真正寫過。因為各種奇怪的細節錯誤,調了好幾個小時 比如找環時沒有判...

訓練日記 20170328

今天的題目似乎很水 好多人都提前ak離場了,於是提前一小時收題。但是我還是各種不會。思維江化?話說,聽到一句很有趣的話 山不在高,有林則徐 水不在深,有江 題意 給定一棵有n n 105 個節點的有根樹,編號互不重複。詢問有多少棵子樹內節點編號構成乙個連續區間。題解 水題,對於每個節點 i 記錄以該...