astar 集合的交與並

2021-06-06 22:00:59 字數 950 閱讀 3275

時間限制:

1000ms

記憶體限制:

65536kb

描述 對於乙個閉區間集合(k>1,ai<>aj),我們定義其權值

w=|a1∪a2∪……∪ak|*|a1∩a2∩……ak|

其中|x|表示x區間的長度;如果x為空集|x|=0。

當然,如果這些閉區間沒有交集則權值為0。

給定n個各不相同的閉區間,請你從中找出若干個(至少2個)區間使其權值最大。

輸入第一行乙個整數n (2 <= n <= 10^5)

接下來n行每行兩個整數 l r(1 <= l <= r <= 10^6),表示閉區間的兩個端點。

輸出最大權值

樣例輸入

4

1 6

4 8

2 7

3 5

樣例輸出

24

這題是astar的題,表示不知道怎麼搞,時間複查度是n =10^5 ,必須要至少 o(n*log n)的時間複查度 ,我的的思路是先把每段區間按左端點 由大到小排序,然後再右斷電排,最後像最大欄位和那麼dp下就可以了…純屬於個人yy的,也不知道對不對,更不會證明……

很戳的**:有時間在瞅瞅

#include #include using namespace std;

struct node

line[100010];

int cmp(node a,node b)

int main(int argc, char *argv)

else}}

printf("%d\n",ans);

}// system("pause");

return exit_success;

}

7 4 1 set 集合的「交」與「並」

7 4 1 set 集合的 交 與 並 給出兩個由數字組成的集合,請求這兩個集合的 交 和 並 輸入格式 給乙個n,m 代表兩個數列的大小 0 n,m 2e5 如果n 0,則接下來一行,n個數空格隔開,代表第乙個集合中的數。如果m 0,則接下來一行,m個數空格隔開,代表第二個集合中的數。1e9 ai...

線性基求交與求並

先說明一下這裡的求交與求並分別是什麼意思。就是有兩個線性空間v 1v 1 v1 與v 2v 2 v2 求出這兩個空間的交與並。當然oi中的線性空間大部分是指異或操作下的,也就是常說的線性基。如下所說的,都是異或的線性基,不區分加號與異或,即 xi x1 x2.x3 sum x i x 1 oplus...

計算幾何 多邊形的交與並

多邊形的交,多邊形的邊一定是要按逆時針方向給出 還要判斷是凸包還是凹包,呼叫相應的函式 面積並,只要和面積減去交即可 include using namespace std const int maxn 300 const double eps 1e 8 int dcmp double x stru...