티스토리 뷰

코드포스 후기 #7


Codeforces Round #375 (Div. 2)
2016/10/03(월) 20:35



374한지 일주일도 안됐는데 개천절에 또 했다! 한국 국경일인데 왜지...(??)

맨날 5문제/2시간 하다가 이번에는 6문제/2.5시간이었다. 신기방기



A. The New Year: Meeting Friends

서로 다른 점(친구들의 위치) 세개가 주어지고 meeting point를 정해 친구들이 움직인 거리의 합이 최소가 되도록 하는 문제.

어이없게 A번을 pretest #3에서 틀려서 빠른 멘붕...

점 세개길래 신나서 평균때리고 계산해서 제출했는데 그냥 최대-최소 하면 되는거였다. 중간 위치의 친구가 있는 곳에서 만나면 됨.

평균으로 하면 중복해서 움직이는 거리가 생기더라... 멘붕상태라 이걸 빨리 못찾고 5분은 헤맨거 같다.



B. Text Document Analysis

괄호문자들이 포함된 문장에서 아래 두가지 값을 구하는 문제.

1) 괄호 바깥의 단어중에 가장 긴 것의 길이

2) 괄호 안에 있는 단어들의 갯수

공통적으로 한글자씩 스캔하면서 separator('_')나 괄호를 만날때까지 단어마다 길이를 재고, 괄호밖이면 최대값이랑 비교하고 괄호안이면 길이가 0이 아닌 것들을 카운트한다.



C. Polycarp at the Radio

문제가 잘 이해가 안되서 (영어 노잼ㅠ) 몇번을 다시 읽었던 것 같다. 최소값의 최대값... 관련된 문제인데 이런거는 한글로봐도 난독오는데 영어로 보니 더 힘들었다.

밴드들의 번호로 이루어진 길이 n의 playlist에서 자기가 좋아하는 1~m까지 애들을 최대한 많이 배치하는걸로 바꾸는 문제. 1~m 애들이 등장하는 횟수의 최소값을 최대가 되도록 만들어야한다. 그 때의 최대값이랑 그렇게 되는 playlist를 하나 출력하라고 한다.

조금만 생각해봐도 결론적으로 답은 n/m인게 확정이라서, n/m번 미만으로 등장하는 애들만 보충해줬다.

먼저 입력받을 때 1~m이 나올 때 마다 카운트를 해놓는다. playlist를 처음부터 훑으면서 m보다 번호가 큰 밴드거나 1~m 사이인데 등장횟수가 넉넉한 애들을 (1부터)부족한 애들로 바꿔치기한다.



D. Lakes in Berland

호수를 나타내는 지도가 문자열로 주어지는데, 여기서 최소한의 땅을 메꿔서 k개의 호수만 남기는 문제. 처음 주어지는 지도에서는 k개 이상의 호수가 있는게 보장되기 때문에 호수를 늘리진 않는다. 처음에 조건을 끝까지 안봤을 때는 호수 중간의 허리같은 땅을 메꿔서 하나를 두개로 만들고... 이런 변태적인 상황을 생각해서 못풀것만 같았는데 호수를 줄여나가는 문제라서 그런걸 고려할 필요가 없다는걸 깨닫고 희망차게(!) 풀이를 시작했다.

먼저 테두리쪽에 붙어있는 호수가 아닌애들을 색출해내고, 그다음에 호수를 차례로 방문하면서 넓이를 구한다. 상하좌우 재귀탐색을 통해서 호수 하나의 넓이를 구해낼 수 있다. 그리고 호수를 우선순위큐에 넣어서 남는게 k개가 될 때까지 넓이가 작은 것 순으로 하나씩 끄집어낸다. 큐에서 꺼내진 호수를 메꾸면 끝- 메꾸는 과정도 넓이 구하는 것과 비슷하게 할 수 있다. 메꾸는 작업을 위해서 Lake 클래스에 포함된 점하나 정보를 넣어놓았다ㅎㅎ



E. One-Way Reform

non-directed graph를 directed graph로 만드는 문제인데 이것저것 궁리만 하다가 구현은 못했다. 나중에 풀어봐야지.



F. st-Spanning Tree

F번은 열어보지도 못했습니다... 3000점짜리 문제 무서웡.





Final Standings

Rank

Points

Extras

A

500

B

1000

C

1500

D

2000

E

2500

F

3000

278

3752

-

422

00:14

896

00:26

1194

00:51

1240

01:35

6문제 중 4문제긴하지만 그래도 계속 염원하던 4문제 풀기 처음 이뤘다!



Rating Changes

Rank

Points

Rating

278

3752

1681 → 1740 (+59)


지난 두번 찔끔씩 깎아먹던거 회복하고 다시 올라감 +_+ 1700 돌파~



※ 링크 : 대회공지 / 출제자해설


'알고리즘 > Codeforces' 카테고리의 다른 글

Codeforces Round #390 (Div. 2)  (0) 2017.01.11
Codeforces Magic! New Year Gift  (0) 2017.01.10
Codeforces Round #374 (Div. 2)  (0) 2016.10.03
Codeforces Round #373 (Div. 2)  (0) 2016.09.30
Codeforces Round #372 (Div. 2)  (0) 2016.09.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함