#43635: 解


ptyc4076@gmail.com (Bernie)

學校 : 不指定學校
編號 : 136113
來源 : [1.174.90.90]
最後登入時間 :
2024-10-22 01:31:39
o714. 4. 搭到終點 -- 2024年10月APCS | From: [1.174.90.90] | 發表日期 : 2024-10-21 22:02

考慮當前列車的行程是[s, d],如果有其他列車的終點在[s, d-1]之間,便可以轉乘這台列車抵達站點d。

所以我們用終點去小到大排序所有列車,然後用二分搜分別找出第一個終點 ≥ s的列車和最後一個終點 < d的列車的位置,分別是p1和p2,

設dp[i]為搭乘第i班列車的方法數,那很明顯dp[i] = dp[p1] + dp[p1+1] + ...... + dp[p2]; 

接下來用線段樹等方法維護區間和就好了

 
ZeroJudge Forum