技巧 離散化

2022-06-09 01:54:07 字數 649 閱讀 2156

離散化作為一種常見的技巧,可以有效地降低時間和空間複雜度.本文介紹兩種離散化模板.此外,離散化有一些坑點,在處理染色問題的端點方面不能直接套用模板.這種題應該具體分析.

#include #include using namespace std;

const int n = 1e1+5;

int t[n],a[n];

int main()

sort(t+1,t+1+n);

int m = unique(t+1,t+1+n)-t-1; // 最大離散數

for(int i = 1; i <= n; i++)

return 0;

}

#include #include using namespace std;

const int n = 1e5+5;

struct node

};int n;

int t[n];

node a[n];

int main()

sort(a+1,a+n+1);

for(int i = 1; i <= n; i++)

return 0;

}

技巧 離散化

模板 include include include using namespace std vectorid int main sort id.begin id.end 為二分搜尋排序 去重讓每乙個值都是單一的 id.erase unique id.begin id.end id.end 把值改變...

常用技巧 離散化

這個技巧比較常用,當處理資料比較大,但是又不是很需要去關心資料的具體數值,而只需要去關心相對位置時會很有用 因為很多題目的資料範圍會很大,但給的資料點卻很少,或者這個資料範圍是連續的時候 比如 2000000 200 600 4000 600 2000000這種輸入,要對其進行離散化,先對其進行排序...

常用技巧 離散化

離散化,就是把無限空間中有限的個體對映到有限的空間中去,以提高演算法的時空效率。很多演算法的複雜度與資料中的最大值有關,比如樹狀陣列和純用陣列實現的一對一標記。時常會遇到這種情況 資料的範圍非常大或者其中含有負數,但資料本身的個數並不是很多 遠小於資料範圍 在這種情況下,如果每個資料元素的具體值並不...