離散化的方法

2021-08-18 23:35:51 字數 594 閱讀 9614

總結有如下幾個步驟:

1.拷貝原陣列

2.將拷貝的陣列排序

3.利用unique()對拷貝陣列去重,並記錄不重複元素

4.利用lower_bound()離散化

注:唯一需要注意的是下標究竟從幾開始

離散化後的值可以理解為是在這個陣列中第幾大的值,所以如果要查詢離散化的值在原陣列中對應哪個數,我們直接查詢 t[這個值]就行了。

#include 

using

namespace

std;

const

int maxn = 10005;

int a[maxn], t[maxn];

int n;

int main()

sort(t + 1, t + 1 + n);//將t陣列排序

int m = unique(t + 1, t + 1 + n) - t - 1;//去重,m是a陣列不重複元素個數

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

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

return

0;}

離散化的方法

離散化,就是把一些很離散的點給重新分配。舉個例子,如果乙個座標軸很長 1e10 給你1e4個座標,詢問某乙個點,座標比它小的點有多少。很容易就知道,對於1e4個點,我們不必把他們在座標軸上的位置都表示出來,因為我們比較有多少比它小的話,只需要知道他們之間的相對大小就可以,而不是絕對大小,這,就需要離...

離散化方法

個人筆記,僅供複習 2.適用範圍 除了對於較大整數需要使用離散化之外,對於一些需要使用整型資料結構,但給出的資料卻是小數的也可以使用離散化,將其索引為整數就可以了。3.一般步奏 4.例題 uva12171 uva12171 sculpture rujia liu include include in...

常用特徵離散化方法

1規定劃分區間的引數,取定長的間隔將特徵放入不同的箱子中,這種方法對異常點比較敏感。2 根據頻率劃分箱子,會出現特徵相同卻不在乙個箱子中的情況,需要在劃分完成後進行微調。先對特徵值進行sort,然後評估分割點,劃分或者合併 3 1r方法 將前面的m個例項放入箱子中如果後面例項放入箱子時,比對當前例項...