CF1462F 區間的計算

2022-03-23 02:41:21 字數 2745 閱讀 2735

\(leb\) 有 \(n\) 段區間,每段區間都是由兩個元素 \(l_i\) 和 \(r_i\) 所確定的。如果這 \(n\) 段區間內,存在乙個區間跨越了所有的區間(即該區間與任意乙個區間都有重疊部分),那麼 \(leb\) 就會很開心,\(lht\) 就可以乘機蹭一頓飯。\(lht\) 悄悄找到了給出這 \(n\) 段區間的 \(zzt\),想讓他動些手腳。可是 \(zzt\) 不肯放過這個賺錢的好機會:「你可以刪掉一些區間,但每刪一段區間就得交 \(1\) 塊錢。」 \(lht\) 並沒有很多錢,現在他想知道,讓 \(leb\) 開心的最小花費。

刪除一些區間,這種問題一般很難讓人產生什麼思路。我們可以將問題稍微轉化一下:我們發現,如果某個區間在最優方案中應該被刪除,意思就是這些區間並沒有被最終的那乙個區間所跨越。換言之,就是最終區間沒有跨越的區間數。因為區間總數一定,所以求沒有跨越的區間數就可以轉化為求跨越區間最多的區間跨越的區間數 \(ans\)(輸出時要輸出 \(n - ans\))。

我們接下來分析一下跨越的性質。

我們假設兩個區間,第乙個區間左端點是 \(l_i\),右端點是 \(r_i\);第二個區間左端點是 \(l_j\),右端點是 \(r_j\)。如果 \(l_j \le l_i \le r_j\),那麼這兩個區間肯定互相跨越。如果 \(l_i < l_j\) 並且 \(l_j \in (l_i, r_i]\),那麼這兩個區間也肯定互相跨越。

分析完性質後,我們發現:這兩種情況的條件中都包含有 \(l_i\) 與 \(l_j\) 這兩個元素的大小關係,且對於第一種情況,\(l_j \le l_i\),第二種則是 \(l_j > l_i\)。這時,如果我們將所有區間按照左端點遞增排序,那麼 \(\forall i < j, l_i \le l_j(i, j \in [1,n])\)。所有座標小於當前區間的區間一定滿足第一種條件中的 \(l_j \le l_i\),所有座標大於當前區間的區間一定滿足 \(l_j \ge l_i\)。這時我們發現:所有座標大於當前區間的區間滿足的並不是第二種情況所需要的條件,有些人可能會問:那直接把條件改成 \(l_i \le l_j\) 並且 \(l_j \in [l_i, r_i]\) 不就好了?這裡有乙個問題需要我們注意:在 \(l_j = l_i\) 時,兩種情況都滿足,那麼答案理論上就會重複計算。但是,往往事情就是這麼巧,由於座標獨特的性質,這樣做不會重複計算:對於當前區間的左端點,可能存在部分區間左端點與其一樣並且座標小於當前區間的座標,也可能存在部分區間左端點與其一樣並且座標大於當前區間的座標。這個時候座標小於當前區間的區間的左端點只涵蓋了一部分左端點相同的情況,並不是全部情況。這剩下的空缺正好由座標大於當前區間的左端點與當前區間的左端點相同的區間所補充上。這樣一來,保證了所有的計算不重不漏地把所有的情況都囊括了進去。

具體實現中,我們可以用權值線段樹來維護在所有座標小於當前區間(第 \(i\) 個區間)的區間中,有多少個區間中的右端點 \(\in [l_i, +∞]\)。這個結果便是滿足第一種情況的區間數。對於第二次情況,要維護的就是在所有座標大於當前區間的區間中,有多少個區間中的左端點 \(\in [l_i,r_i]\)(關於為什麼這麼做是合法的,上文已經給出)。這個結果便是滿足第二種情況的區間數。從所有區間的這兩次統計的和中找出最大的值,便是跨越區間最多的區間跨越的區間數,\(ans\)。

注意:由於這題 \(t \le 2*10^5\),所以每組資料中負責統計的陣列每次只用清前 \(n\) 個數為 \(0\)。如果直接 \(memset\) 會導致 \(tle\)。

**(空格警告):

CF 920F 區間求約數個數

給定乙個序列,支援區間每個元素變為它們的約數個數 區間求和 n leq 10 5,a i leq 10 9 由於 a i leq 10 9 因此每乙個元素最多會被修改有限次就會變為1或2,複雜度 o nlogn include using namespace std define ll long l...

14 2 1 F 中的顏色計算

14.2.1 f 中的顏色計算 若要實現圖形效果,比如模糊或灰階化,我們需要執行顏色的計算。我們可以使用 system.drawing 中標準的 color 型別,但是,我們可能需要把它分開成紅色 綠色和藍色的元件處理,這並不總是很方便。listing 14.9 implementing color...

F5負載均衡的計算演算法

1.round robin 迴圈 平均分配 2.radio 加權 按硬體配置比例分配,我想這應該需要配置管理員心中有譜 3.dynamic radio 動態比重分配,演算法?指令碼?4.fastest 分配到當前處理隨度最快的伺服器 不知道怎樣算的,難道是最近處理完乙個請求的時間最少嗎?不靠譜 5....