日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

势能线段树/吉司机线段树-我没有脑子

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 势能线段树/吉司机线段树-我没有脑子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

勢能線段樹/吉司機線段樹

BZOJ3211 花神游歷各國
BZOJ5312 冒險
BZOJ4355 Play with sequence
BZOJ4695 最假女選手

\(A_i = max(A_i, x)\) 這種操作的 tag 不需要實際記錄下來, son.mn1 = min(max(son.mn1, dad.mn1), dad.mx1) 就行了。

修改 mn1, mn2 的時候需要特判區間只有 1 個數和 2 個數的情況,因為這些情況涉及到 mx1, mx2 也可能改變。

想清楚 tag_cover 和 tag_add 應該如何疊加。

想清楚怎樣更新嚴格的 mn1, mn2 。

代碼長的時候心態別崩,不要皮,不要打錯變量名……這是老生常談了。

善于利用黑暗暴走 OJ 。

關于復雜度證明:關鍵節點,似乎一個關鍵節點改變用一個 log ,然后根據 tag 標記的原理至多 log 個 tag ,所以理論上是 \(O(n\cdot \log^2 n)\) ,實際上接近 \(O(n\cdot \log n)\) 。

upd: 一點優化

  • 雖然還沒有到達要修改的區間 \([s,t]\) ,但是修改操作對于包含 \([s,t]\) 的區間 \([l,r]\) 都已經沒有了影響,應該直接返回。

  • 區間 and 上或者 or 上一個數 \(x\) ,查詢 \(max\) 的題,按位討論,對于 \(sum\_and\ xor\ sum\_or = 1\) 的位(等于 \(0\) 時顯然怎么操作都不會改變 \(max\) ),只要 \(x\) 在這些位的值全部相等即無影響,因為這樣要么完全沒有修改這些位,要么么全部修改成了一個相同的值。

  • ((p->s_a ^ p->s_o) & x) == 0 || ((p->s_a ^ p->s_o) & x) == (p->s_a ^ p->s_o)

    只討論了一種也不會太慢,但確實加上會快一些。

    我為何會深入思考這個?因為 LOJ6507 「雅禮集訓 2018 Day7」A T 飛了。

    轉載于:https://www.cnblogs.com/ghcred/p/10240464.html

    總結

    以上是生活随笔為你收集整理的势能线段树/吉司机线段树-我没有脑子的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。