본문 바로가기

공부합시다

pbds

set을 사용하려는데 특정 요소의 인덱스를 알 수 없는 문제가 있었다. set과 비슷한데 이런 기능을 제공하는 자료구조가 pbds! 세그먼트 트리를 써도 되지만 세그먼트 트리를 아직 모르기 때문에 이걸 사용했다. 

 

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;

int main() {
	ordered_set eraseSet;
    
    eraseSet.insert(tmp);
    eraseSet.erase(now);
    
    *(ordered_set.find_by_order(1)) 
    
    eraseSet.order_of_key(now) // now의 인덱스를 반환함

	return 0;
}

'공부합시다' 카테고리의 다른 글

다익스트라  (0) 2021.07.31
세그트리  (0) 2021.05.15
LIS 최장 증가 부분 수열  (0) 2020.10.25
결과 MOD 나누는 거 관련  (0) 2020.10.15
비트마스크로 부분집합 관리  (0) 2020.09.21