模擬測試94

T1:數組

  高精度複雜度不容許,可是咱們只關注相對大小,因此能夠對答案取對數。spa

  $lg(X^Y)=YlgX$
  $lg(Y!)=\sum \limits_{i=1}^Y lgi$
it

  直接比較便可。變量

  時間複雜度$O(n)$。im

T2:時間

  考慮對序列進行差分。

  差分後區間加減轉化爲對相距$k$的兩個數同時加上兩個相反數。

  在對$k$取模意義下開桶,用變量維護不爲0的桶的個數。

  修改只需修改兩個點,暴力修改便可。

  注意差分共有$n+1$個。

  時間複雜度$O(n)$。

T3:

  考慮區間比較困難,嘗試換着考慮每一個點是多少區間的lca。

  發現若是當前節點是一個區間的lca,那麼這個區間內的全部點都應在子樹內。

  然而反過來並非對的,由於當前點不必定是lca,lca多是子樹內的某點。

  其實這是一個自下而上的前綴和的形式,差分下就能獲得答案。

  考慮如何維護區間個數。

  對於原序列求出一個互逆數組,而後將當前節點字數內的全部點插入序列中的對應位置,而後求出連續區間個數。

  直接維護複雜度超限,能夠用線段樹合併維護。

  線段樹維護當前區間左側和右側分別可以到達的最遠位置,和中間部分的區間數。

  合併區間時分類討論便可。

  時間複雜度$O(nlogn)$。

相關文章
相關標籤/搜索