1. 程式人生 > >2018年8月2日暑假訓練日記

2018年8月2日暑假訓練日記

上午:

莫隊演算法:

以前對莫隊演算法的理解就是一個離線分塊處理,簡單瞭解了一下覺得沒有基礎也能寫,但是昨天的題發現見到這樣的題基本沒有什麼想法,於是今天重新學習,簡單小總結一下吧:

首先莫隊演算法的時間複雜度: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一下,成功錯失