模板 離散化

2021-10-06 14:39:31 字數 709 閱讀 9271

acm-icpc模板

乙個對閉合區間離散化的小技巧

• 有若干個閉合區間[li,ri],把它們離散化成若干個區間

• 新的區間排序後也有乙個序列

• 做法是把所有li和ri + 1拿出來排序,對於相鄰的兩個元素可以 得到乙個區間[vi,vi+1 − 1]

• 這樣每個原來的區間都包含了新的區間序列的乙個區間

/*去重離散化*/

int tot =0;

scanf

("%d"

,&n)

;over

(i,1

,n)sort

(b,b+tot)

;int res =

unique

(b,b+tot)

-b;over

(i,1

,n) a[i]

=lower_bound

(b,b+res,a[i]

)- b;

/*主要注意unique的用法,返回的是乙個迭代器,而且unique並沒有真正刪除元素*/

/*不去重離散化,相同也會排開*/

struct node

}a[n]

;ll n,m,ranks[n]

;int

main()

離散化模板

離散化模板 include include include include using namespace std intmain return0 unique函式 std unique 功能 對有序的容器重新排列,將第一次出現的元素從前往後排,其他重複出 現的 元素依次排在後面 返回值 返回迭代器...

模板 資料預處理技巧 離散化

問題引入 輸入n個資料,統計每個數出現的次數。資料大小為小於等於1e9的正整數,n小於等於1e5 很顯然,如果直接開乙個1e9的陣列來記錄每個元素出現的次數,那肯定會mle,因此要把我們輸入的資料進行離散化操作。即把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率。通俗的說,離散化...

離散化問題

題目傳送 uvalive 4127 the sky is the limit 大白書離散化簡單題。找了半天錯誤,居然是少輸出乙個空行。頓時感覺自己萌萌噠。其中計算幾何是套的之前留下的模板。ac include include include include include include inclu...