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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

线段树-区间的交

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线段树-区间的交 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

區間的交

題目來源

孫耀峰Segment_Tree.pdf 原創

題目描述

  • 給定nnn個區間,[li,ri][l_i,r_i][li?,ri?],可以選出其中一些區間,設選出tottottot個,令xxx表示這tottottot個區間交的長度.
  • min{x,tot}min\{x,tot\}min{x,tot}
  • n≤105,1≤xi≤yi≤nn \le 10^5,1 \le x_i \le y_i \le nn105,1xi?yi?n

題目解答

我們發現當tottottot增大時xxx會減小,具有單調性.

我們把線段看成是平面上二維的點(l,r)(l,r)(l,r).

那么我們考慮從小到大枚舉線段的交的右端點RRR,如果,交線段的長度為xxx,那么交線段左端點就是L=R?x+1L=R-x+1L=R?x+1,而所有包含這個交線段線段(此時被表示成了數點)我們可以用一顆線段樹來維護,因此我們可以很快的在線段樹上找到所有l≤L且r≥Rl \le L 且 r \ge RlLrR的點的個數,這些個數就是tottottot.

考慮到x=R?L+1x = R-L+1x=R?L+1是一個關于LLL減函數,而tottottot則是關于LLL的增函數.
也就是說,隨著LLL的增大,xxx在增大,tottottot在減小,則顯然答案min{x,tot}min\{x,tot\}min{x,tot}在滿足x≤totx \le totxtot最大的LLL時取得最大值tottottot.

考慮到單調性,我們使用二分法,可以很快的找到對于一個RRR,滿足x≤totx \le totxtot最大的LLL.

原題解

下面是孫耀峰聚聚的題解



總結

以上是生活随笔為你收集整理的线段树-区间的交的全部內容,希望文章能夠幫你解決所遇到的問題。

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