<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                題目: 假設希望對一組區間記錄一個最大重疊點,亦即覆蓋它的區間最多的那個點。 a)證明:最大重疊點總存在于某段的端點上。 b)設計一數據結構,能有效地支持操作INTERVAL-INSERT,INTERVAL-DELETE和返回最大重疊點操作FIND-POM。(提示:將所有端點組織成紅黑樹。左端點關聯+1值,而右端點關聯-1值。附加一些維護最大重疊點的信息以擴張樹中結點。) 思考: 設有n個區間,將所有2n個點從小到大排序,對于排序后的第i個點,若它是某個區間的左端點,則p[i]=1,若它是某個區間的右端點,則p[i]=-1。由第一問可知,所求的點一定是某條線段的端點,所以從端點集合中找出被最多區間覆蓋的那個。若一個端點是排序后的第i個點,則有個SUM(s[1],s[i])個區間覆蓋這個點。 使用紅黑樹對所有的端點進行動態排序并保證有較好的性質,在樹的結點中增加一些順序統計量的信息,用于求SUM(s[1],s[i]) 步驟1:基礎數據結構 紅黑樹,p[x]=1表示它是區間的左端點,p[x]=-1表示它是區間的右端點 步驟2:附加信息 v[x]:以x為根的所有結點的p值之和 m[x]:MAX(SUM([left[x], i)) o[x]:以x為根的所有結點中的最大覆蓋點 步驟3:對信息的維護 ![](https://box.kancloud.cn/2016-02-02_56b02bd3f34d9.gif) 步驟4:設計新的操作 Find_Pom():返回根結點的p值 代碼: [頭文件](https://code.csdn.net/mishifangxiangdefeng/exerciseforalgorithmsecond/tree/master/include/chapter14/section14_1.h) [產品代碼](https://code.csdn.net/mishifangxiangdefeng/exerciseforalgorithmsecond/tree/master/src/chapter14/section14_1.cpp) [測試代碼](https://code.csdn.net/mishifangxiangdefeng/exerciseforalgorithmsecond/tree/master/tst/chapter14/section14_1Test.cpp)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看