본문 바로가기

Problem Solving102

Codeforces Educational Codeforces Round 13 - F. Lena and Queries 문제 링크 : http://codeforces.com/contest/678/problem/F 세 가지 쿼리가 주어진다. 1. 기울기가 a이고 절편이 b인 선분 삽입2. 이전에 삽입되었던 i번째 선분 삭제3. 현재 선분 집합에서 특정 x 좌표에 대한 최댓값 출력 풀이 1. - Time Limit Exceeded 쿼리를 루트개씩 묶음으로 나눔. 반평면 땅따먹기 문제에서의 부저장소-저장소 방법으로 각 묶음마다 해결함. 3번 쿼리에 대해서는 이전의 묶음들 + 현재 채우고 있는 묶음에서 답을 찾음.부저장소-저장소 컨벡스헐 트릭 방법은 이 링크에 설명되어 있다. http://codeforces.com/contest/678/submission/18520250 풀이 2. - Accepted 오프라인으로 문제를 해결함... 2016. 6. 17.
2016.6.14 http://codeforces.com/contest/504/problem/E : 답 정하고 점핑하면 Q log^2 N이라 TLE. 양 옆을 커팅해내고 LCA 하듯이 해서 Q log N.http://arc017.contest.atcoder.jp/tasks/arc017_4 : X(i+1)-X(i)로 Segment Tree. GCD(A, B, C) = GCD(A, |A-B|, |B-C|)http://arc048.contest.atcoder.jp/tasks/arc048_c : |∑| ^ [min(L) + (gcd(L(i)-min(L))+1)/2]http://arc049.contest.atcoder.jp/tasks/arc049_d : reverse 이용해서 seg tree하는 것까진 생각했는데 좀 더 생각해보아.. 2016. 6. 15.
Persistent Segment Tree 들어가기 이전에 다음 글이 해당 자료구조에 대해 영어로 잘 설명해 놓았다. Persistent Segment Tree를 이용하는 문제로 BOJ 11932 트리와 K번째 수 문제가 있다. 노드의 개수가 N개이고, 각 정점마다 가중치가 있는 트리가 있을 때에 M개의 쿼리에 대해 두 노드 사이를 잇는 경로 상의 K번째 정점 가중치 값을 출력하는 문제이다. 편의를 위해서 가중치들은 다 좌표압축을 하여 1에서부터 N까지의 값만 가진다고 가정하자. 한 쿼리에 대해서 답을 이분탐색하면서 정한 답을 Ans라고 한다면, 두 정점 u와 v 사이를 잇는 경로에 Ans보다 작거나 같은 원소의 개수를 counting해서 그 개수가 K보다 크다면 Ans를 줄이고, K보다 작으면 Ans를 늘이면 된다. 답을 정하는 데에 O(log.. 2016. 6. 14.
Divide & Conquer Optimization in DP 동적계획법에서의 분할정복 최적화 기법에 대해서 글을 써보려고 한다. 일반적으로 j E1) return; int M = (L1 + R1) / 2; ll res = 0; for (int i = max(S1, M - D); i res) res = T[M] * (M - i) + V[i], opt[M] = i; if (answer < res) answer = res; f(L1, M - 1, S1, opt[M]); f(M + 1, R1, opt[M], E1); } int main() { scanf("%d%d", &N, &D); for (int i = 1; i 2016. 6. 12.
Coder's high 2016 Round 1: Online F번 주저장소와 부저장소 개념을 이용한 Convexhull trick (화질을 720으로 수정하셔야 소스코드가 잘 보여요.) 2016. 6. 8.