作用:使資料的值域變小,便於根據值域構造樹狀陣列、線段樹等結構。
步驟:輸入,排序,去重,索引。
注意:離散化僅適用於只關注元素之間的大小關係而不關注元素本身的值。
//離散化處理
//功能:將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 原資料 處理後 例如有時需要將資料直接作為陣列下標,但因為資料太大而無法開陣列時,...