PS/CP

Educational Codeforces Round 87 (Rated for Div. 2)

leo020630 2021. 7. 27. 03:46

a

A. Alarm Clock (00:07, +)

문제를 이해하기 힘들어 예제를 보고 문제를 예측했다. 문제 자체는 간단한 if문을 사용하면 풀린다.

 

B. Ternary String (00:10, +)

각 문자별로 마지막에 나온 위치를 저장하며 가면 \( O(N) \)에 해결할 수 있다.

 

C. (Not So) Simple Polygon Embedding (00:41, +)

공책에서 풀고 \(O(1)\) 로 출력하는 기하 문제이다. 이외에도 이진탐색을 이용해 해결하는 방법이 있다고 한다.

 

D. Multiset (01:00, +2)

Multiset을 구현하는 문제인데, 메모리 제한이 \(O(N)\)이라 Heap 자료구조를 사용하기 힘들다.

이는 펜윅 트리를 사용하면 해결된다. 주어지는 값이 최대 \(10^6\) 이기 때문에 그만큼의 배열을 잡아줄 수 있고, 각 index에 해당 숫자가 등장한 횟수를 저장하며 이진탐색을 이용해 누적합이 \(k\)이상인 인덱스의 값을 하나씩 줄여주는 것으로 해결할 수 있다.  

'PS > CP' 카테고리의 다른 글

Editorial of Codeforces Round #735 (Div. 2)  (0) 2021.07.30
Educational Codeforces Round 85 (Rated for Div. 2)  (0) 2021.07.28
Codeforces Global Round 15  (0) 2021.07.26
AtCoder Regular Contest 124  (0) 2021.07.25
AtCoder Beginner Contest 211  (0) 2021.07.25