2018年8月2日暑假訓練日記
阿新 • • 發佈:2019-01-02
上午:
莫隊演算法:
以前對莫隊演算法的理解就是一個離線分塊處理,簡單瞭解了一下覺得沒有基礎也能寫,但是昨天的題發現見到這樣的題基本沒有什麼想法,於是今天重新學習,簡單小總結一下吧:
首先莫隊演算法的時間複雜度:O((m+n)sqrt(n))
時間複雜度不大不小,大概可以處理1e5的區間*1e5的詢問
這種詢問有特點就是可以相鄰區間進行跳轉,比如已知(x,y)的狀態可以O(1)知道(x-1,y),(x+1,y),(x,y-1),(x,y+1)的狀態。
處理方式總的來說就是離線分塊
先將區間分塊,查詢按照左區間的位置分塊,按照區間右端點從小到大排序
然後按照公式處理即可
所以說昨天的組合數的題居然用到了莫隊,很是吃驚,當時都把轉移公式寫到紙上了,就是死活不知道是個莫隊,悲哀的我,還是得見多識廣吧
hdu 4638 莫隊演算法教科書板子
統計連續區間的個數
移動刪除數字的時候如果前後數都有,那麼連續區間減少1,前後都沒有,連續區間數減少1
增加數字前後都有,連續區間減少1,前後數字都沒有,連續區間數增加
典型例題,比上一個題目的區間移動更為簡單一些
昨天的題目:
轉移:
s(n,m)=2s(n-1,m)-c(n-1,m)
s(n,m-1)=s(n,m)-c(n,m)
s(n,m+1)=s(n,m)+c(n,m+1)
因為是組合數,所以並沒有看出來
下午:
先是一個數學題,老本行就很簡單一發過了
然後李華健的一發假貪心,改的我心裡憔悴,最後還是想到了所有的狀態
接著又騙我貪心a題,各種貪心都是過百分之0,賽後發現就是一個0-1分數規劃的裸題,自己只學了0-1整數規劃,難受
然後有道規律題忘了把序列分開oeis一下,成功錯失