離散化處理

2021-09-22 10:24:27 字數 1194 閱讀 3832

作用:使資料的值域變小,便於根據值域構造樹狀陣列、線段樹等結構。

步驟:輸入,排序,去重,索引。

注意:離散化僅適用於只關注元素之間的大小關係而不關注元素本身的值

//離散化處理

//功能:將a陣列中的數離散化到x陣列,使值域變小

#include

#include

#include

using

namespace std;

const

int maxn =

100005

;int a[maxn]

,x[maxn]

;int xcnt=0;

//查詢值key在離散化後的陣列的位置

intbinx

(int key,

int n)

intmain()

sort

(x,x+xcnt)

; xcnt =

unique

(x,x+xcnt)

-x;//可選操作:將離散化前的位置與離散化後的位置對映起來

for(

int i =

0; i < n;

++i)

=binx

(a[i]

,xcnt)

;return0;

}

/**

離散化處理

功能:將a陣列中的數以及其加k和減k的值離散化到x陣列,使值域變小

**/#include

#include

#include

using

namespace std;

const

int maxn =

100005

;int a[maxn]

,x[maxn*3]

;struct node

intmain()

sort

(x,x+xcnt)

; xcnt =

unique

(x,x+xcnt)

-x;//可選操作:將離散化前的位置與離散化後的位置對映起來

for(

int i =

0; i < n;

++i)

return0;

}

離散化處理

題目描述 小魚有 n 名優秀的粉絲。粉絲們得知小魚將會在一條直線上出現,打算去膜他。為了方便,粉絲們在這條直線上建立數軸。第 i 名粉絲有乙個偵查區間 li,ri 如果小魚在 j li j ri 處出現,這名粉絲將立刻發現並膜他。小魚希望膜他的人越多越好,但是他不能分身,因此只能選擇乙個位置出現。小...

離散化處理介紹

對於一串數字序列 或者乙個平面 我們要得到其中每個位置得相對位置,但這段數字可能存在間隔十分大,從而產生類似於稀疏矩陣這樣浪費空間的問題 這個形容可能不恰當 比如我們要對這段序列進行桶排序類似物的處理。這是我們可以對其進行求出相對位置 也可以理解為這個數字在這段序列中的排名 而不是原本的絕對位置,利...

資料離散化處理

離散化,把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率。通俗的說,離散化是在不改變資料相對大小的條件下,對資料進行相應的縮小。例如 原資料 1,999,100000,15 處理後 1,3,4,2 原資料 處理後 例如有時需要將資料直接作為陣列下標,但因為資料太大而無法開陣列時,...