09-01 NOIP模擬測試34

指望得分:(20+?)+20+50數組

實際得分:50+20+20ui

rk:25spa

 

考得很慘,考試的時候滿腦子刀劍指針

 

A. 次芝麻

沒思路,只會循環節暴力。造了數據發現出循環節的機率仍是很高的。hash

每次暴力都打不完全,只判了回到最開始的循環節,因此只有50分。class

能夠用hash表或者map離散,記錄每一個數的上次出現位置,這樣就能拿到70分。循環

正解:把每次操做視爲x2,放在模(n+m)意義下,發現就是個快速冪!map

假設a,b且a<b,操做一次後爲a*2,b-a數據

放在模意義下,假設b*2%(a+b)=(b-a)%(a+b)成立co

根據同餘同加性(2a+2b)%(a+b)=(a+b)%(a+b),0=0成立。

假設成立。

 

B. 喝喝喝

壞點:$a_x mod a_y=K \\a_x-K=t\ a_y  $

即$a_y$是$a_x-K$的約數,用桶掃一邊就能獲得前一個和它構成壞點的位置,記爲pre[i]

注意$a_y>K$纔可計入,或者在更新$a_x-K$時考慮

連續子數組就是區間

那麼一個不存在壞點的區間的充要條件就是$pre[i]<l , \forall i\in [l,r]$

對於每一個l,二分出最小的知足上述條件的r,每一個以l爲左端點[l,r]的子區間都知足要求,貢獻爲二分長度。

用st表維護區間最大值便可。

複雜度$\Theta(n \sqrt{n} + nlogn)$

 

打着題解以爲這好像有單調性,用單調指針可以解決。

複雜度$\Theta(n \sqrt{n})$

相關文章
相關標籤/搜索