백준 문제풀이

6/8 ~ 6/16 PS

Vermeil 2022. 6. 16. 21:35

어제부터 시험이 시작됐지만 ps는 해야지..

 

 

BOJ 17429 - 국제 메시 기구 (D4)

더보기

Euler Tour + HLD + Lazy Segtree. 구현 양이 너무 많아서 티어가 높아졌다.

오일러 투어를 할 때, 무거운 정점 우선으로 내려가서 numbering을 해 주고, HLD를 했기 때문에 경로에 대한 update와 sum은 빠른 시간에 구할 수 있다.

 

BOJ 10350 - 은행 (R5)

더보기

(음수가 되는 구간합) / (전체 구간합) 의 올림의 합이 답이다. 시간 제한이 5초라서 O(N2)가 가능하다. 실수로 알고리즘 분류를 봐서 쉽게 풀렸다..

 

BOJ 16680 - 안수빈수 (P5)

더보기
x(1e91)

 

BOJ 18185, 18186 - 라면 사기 (D4)

더보기

B<=C라면, 1개씩만 먹는 것이 이득이다. B>C인 경우를 생각하자.지금 k번째를 보고 있다고 해보자. Ak+1<Ak+2일 때, k~k+2에서 먹고 k번째에서 먹는 것이 이득이다. 반대의 경우는, 3개부터 먹는다면 k+1~k+3에서 먹을 수 있음에도, Ak+2=0이 되므로 최적이 아니다. k,k+1에서 먹고 k번째에서 먹으면 된다. 

 

BOJ 19651 - 수열과 쿼리 39 (D5)

더보기

수열 B를, Bi=AiAi1이라고 정의하자. 그러면 2번 쿼리는 구간에서 원소의 값이 모두 같은, 연속하는 부분수열의 최대 길이 + 1을 구하는 문제로 바뀐다. 금광 세그를 활용하면 된다.

 

BOJ 18975 - Jaw-Dropping Set (D4)

더보기

오른쪽 절반을 먹으면 되므로 subset의 최대 크기는 N2이고, 이는 set의 홀수의 개수와 같다. 1, 3, 9, 27... 이렇게 있을 때 오른쪽 끝부터 20, 21, 22, ... 이렇게 곱해주면 가능한 모든 수들이 서로소가 된다는 것(그리고 합은 최소가 된다)을 이용해보자. N보다 작거나 같은 모든 홀수는 20을 곱한다. 그리고, N/3보다 작거나 같은 모든 홀수는 21을 곱한다. 이렇게 1까지 쭉 가면 각 테스트케이스 당 O(logN)에 풀 수 있다.

 

'백준 문제풀이' 카테고리의 다른 글

6/27 ~ 6/30 PS  (2) 2022.06.30
6/20 ~ 6/26 PS  (0) 2022.06.26
6/3~6/7 PS  (3) 2022.06.07
6/1~6/2 PS  (4) 2022.06.03
5/30~6/1 PS  (1) 2022.06.01