种类问题
幾乎所有種類問題都可以轉化成兩種模型之一
1.直接維護ans數組
2.統計二維數點問題
前置知識
二維靜態數點
以y為第一元素,x為第二元素,原點優先級大于查詢點,對所有點(原點+查詢點),然后求
區間最值
例題:
例題1
例題2
第一個方法:
維護ans數組,當從L到L+1時,next[i]到next[next[L]]-1這個區間整體減一,就是查看每個數的貢獻是什么樣的
利用線段樹維護
第二個方法:
計數點為倒數第二個點,因為題目要求出現兩次及以上
點i為倒數第二個點,next[i]就是最后一個
什么點符合要求?
next[next[i]] > r , l <= i <= r
以i為橫坐標,next[next[i]]為縱坐標
二維數點
例題3
第一個方法:
1.i到nxt[i]-1 的區間-1
2. nxt[i] 到nxt[nxt[i]]-1的區間+1
第二個方法:
例題4
只出現一次的電影的權值和
總結
- 上一篇: gym 102875A -- Array
- 下一篇: Educational Codeforc