백준 6171 - 땅따먹기 (C++)
문제 문제 링크 BOJ 6171 - 땅따먹기 문제 요약 $N$개의 땅의 $W_i, H_i$가 주어진다. 문제에 정의된 구매 규칙을 따를 때, 모든 땅을 사는 최소 비용을 구해보자. 제한 TL : $1$ sec, ML : $128$ MB $1 ≤ N ≤ 50,000$ $1 ≤ W_i, H_i ≤ 1,000,000$ 알고리즘 분류 다이나믹 프로그래밍(dp) 볼록 껍질을 이용한 최적화(convex hull trick) 풀이 문제의 규칙을 따르면 임의의 부분 집합 땅(k개)을 살 때 $max(W_1, W_2, ... W_k) * max(H_1, H_2, ... H_k)$ 의 비용이 발생 한다고 한다. 이는 결국 부분 집합에서 $W_1 >= W_2$ && $H_1 ≥ H_2$ 이면 2번 땅은 애초에 고려될 필요가..