使用stl演算法離散化:
思路:先排序,再刪除重複元素,然後就是索引元素離散化後對應的值。
假定待離散化的序列為a[n],b[n]是序列a[n]的乙個副本,則對應以上三步為:
#include#includeusing
namespace
std;
int a[1005
];int
main()
unique()函式是乙個去重函式,stl中unique的函式 unique的功能是去除相鄰的重複元素(只保留乙個),unique(num,mun+n)返回的是num去重後的尾位址,之所以說比不真正把重複的元素刪除,其實是,該函式把重複的元素一到後面去了,然後依然儲存到了原陣列中,然後返回去重後最後乙個元素的位址,因為unique去除的是相鄰的重複元素,所以一般用之前都會要排一下序。
資料的離散化
有些資料本身很大,自身無法作為陣列的下標儲存對應的屬性。如果這時只是需要這堆資料的相對屬性,那麼可以對其進行離散化處理!離散化 當資料只與它們之間的相對大小有關,而與具體是多少無關時,可以進行離散化。例如 9 1 0 5 4 與 5 2 1 4 3 的逆序對個數相同。設有4個數 1234567 12...
資料的離散化
有些資料本身很大,自身無法作為陣列的下標儲存對應的屬性。如果這時只是需要這堆資料的相對屬性,那麼可以對其進行離散化處理!離散化 當資料只與它們之間的相對大小有關,而與具體是多少無關時,可以進行離散化。例如 9 1 0 5 4 與 5 2 1 4 3 的逆序對個數相同。設有4個數 1234567 12...
資料離散化
離散化有兩種方法 第一種,先看一段 const int n 1e5 7 int t n a n int main 在這段 中,a經過離散,範圍就變成了m。解釋一下,unique是c 自帶的乙個函式,表示對乙個數列去重,然後返回不重複的元素個數,當然在後面要減去首位址。那麼這種離散化對於有重複元素的數...