본문 바로가기

공부합시다

실수범위 이분탐색 파라메트릭서치 또 100번 도는 이유가 오차 범위가 10^-6, 10^-9이기 때문에 10^9를 100번 이분탐색 하면 10^9 * 2^-100 이 되어 아주아주 숫자가 작아진다. 궁금해서 곱해봤는데 2를 한 40번 나누니깐 10^-6을 넘어섰다. 100번 = 오차 : 10^9 40번 = 오차 10^6 더보기
split printVector vector split(string s, char c){ stringstream ss(s); string word; vector result; while (getline(ss, word, c)) { result.push_back(word); } return result; } void printVector(vector &v) { for (int i = 0; i < v.size(); i++) cout 더보기
좌표압축 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; class Mapping { public: void init(const vector& raw.. 더보기
투포인터 예시 코드 int l = 1, r = 1; int ans = 0; while (r 더보기
다익스트라 조금 더 정리가 필요할 것 같다.. 입력 첫 줄에 정점의 개수 N과 간선의 개수 M, 그리고 시작 정점 S가 주어집니다. 다음 M줄에 간선의 관계 시작정점 u와 도착정점 v 그리고 간선 가중치 w가 주어집니다. 7 11 1 1 2 4 1 3 10 1 7 20 2 3 4 2 4 3 3 5 7 4 3 11 5 7 4 6 5 1 7 6 10 6 4 2 출력 시작정점에서 각 정점사이의 거리를 모두 출력합니다. 0 4 8 7 15 29 19 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #d.. 더보기
세그트리 https://docs.google.com/presentation/d/10Hikfx-hyg1b4fOzXJkytsmJtTLlrdoFoL5guUfPtks/edit#slide=id.g62d05dd459_0_0 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using iis = pair; us.. 더보기
pbds set을 사용하려는데 특정 요소의 인덱스를 알 수 없는 문제가 있었다. set과 비슷한데 이런 기능을 제공하는 자료구조가 pbds! 세그먼트 트리를 써도 되지만 세그먼트 트리를 아직 모르기 때문에 이걸 사용했다. #include #include #include using namespace std; using namespace __gnu_pbds; typedef tree 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; } 더보기
LIS 최장 증가 부분 수열 더보기