본문 바로가기

Competitive Programming

(38)
Codeforces Round 942 (Div. 1) Dashboard - Codeforces Round 942 (Div. 1) - Codeforces codeforces.com 사실 전 글은 쓸 생각이 없었는데, 이번 대회를 치고 이 글을 쓰기 위해 전 것도 작성했다. 하아 Prob. A원소의 최소 개수를 최대화해야 함은 직관적으로 알 수 있다. 그리고 예제를 통해 그 원소의 개수의 역순으로 배열하는 것이 최적임도 알 수 있다. 그래서 이를 이분탐색 등을 이용하여 잘 구현해주면 되는데, 자꾸 틀린다. 도저히 틀린 부분이 안 보여서 B를 다 풀고 왔더니 이분탐색 시작할 때 천장 값을 너무 크게 잡은 게 오버플로우를 유발하는 것 같았고, 실제로 그 부분만 고치니 맞았다. 이런 실수 되게 오랜만에 하는 것 같다. Prob. B1식을 정리해보면 나이브가 루트 시..
Codeforces Round 941 (Div. 1) Dashboard - Codeforces Round 941 (Div. 1) - Codeforces codeforces.com 진짜 오랜만에 코포 포스팅이다. 현생에서 큰 웨이브를 넘겼고, 슬슬 복귀를 해야겠다 싶어서 가볍게 쳐봤다. Prob. A깊이 생각해보지 않아도, 먼저 선택권이 주어지는 쪽에게 우세가 있다는 것을 알 수 있다. 이를 확인하기 위해 $a_i$를 정렬하고 인접한 값들의 차를 보면 된다. Prob. B일단 이진법을 써야 함은 자명하고, 여기서 열심히 구성해주면 된다. 나는 $k$의 MSB를 $x$라고 했을 때, $x$를 빼고 $k-x$를 넣고 $k+1$을 넣고 $k+2x$를 넣었다. 딱히 전략은 없고 $k$가 만들어지는 것을 피하면서 최대한 많은 수를 커버할 수 있도록, 그리고 현재 못 ..
Educational Codeforces Round 161 (Rated for Div. 2) Dashboard - Educational Codeforces Round 161 (Rated for Div. 2) - Codeforces codeforces.com D, E가 쉽게 나와서 나름 잘 쳤다. F도 접근은 다 했는데 디테일에서 부족한 부분이 있었다. Prob. A사실 얘는 아직도 지문을 이해하지 못했다. 그냥 예제만 보고 가능한 코드를 다 짜보니 두 번째에서 맞았다. Prob. B뽑은 세 수 중 가장 큰 것이 다른 두 수보다 strict하게 크면 안 된다. 그래서 세 수가 모두 같거나, 두 수가 같고 남은 수가 그것보다 작은 두 가지 경우만 가능하다. 같은 수를 편하게 처리하기 위해 map을 사용해서 풀었다. Prob. C$u$에서 $v$로 갈 때 항상 일직선으로 이동하는 것이 최선이다. 그리..
Codeforces Round 917 (Div. 2) Dashboard - Codeforces Round 917 (Div. 2) - Codeforces codeforces.com 아직 작심삼일이 지나지 않았기 때문에 언레지만 참가했다. 초반부터 쭉 말렸지만 문제가 어려워서 퍼포는 괜찮게 나온 듯. Prob. A 음수의 개수, $0$의 개수, 양수의 개수를 구하고 음수를 만들 수 있는지, 0을 만들어야 하는지에 따라 경우를 나눠주면 된다. Prob. B 어렵다. 해시 써야 하나 한참 고민하다가 문자열의 길이를 고정한다고 생각해보니 풀이가 나왔다. 만들 문자열의 길이를 $m$이라 하면 뒤의 $m-1$개의 문자는 고정되고 앞에서 아무거나 하나 선택할 수 있다. 그래서 뒤에서부터 스위핑하며 개수를 관리하고 답을 구할 수 있다. 문제는 좋은데 이게 B? Prob. ..
Pinely Round 3 (Div. 1 + Div. 2) Dashboard - Pinely Round 3 (Div. 1 + Div. 2) - Codeforces codeforces.com 8개월 만에 코포를 쳤다. 지금껏 갖은 핑계를 대면서 복귀를 계속 미루고 미뤘었는데, 이제 진짜 레드 갈 때까지 멈추지 않는다. 개인적으로 조금의 운을 탄다면 레드를 갈 가능성이 있다고 보고 있고, 이번 방학 내에 달성하는 것이 목표긴 하다. 이번 컨테는 평타는 쳤지만 오랜만에 해서 그런지 미숙한 부분이 많아서 아쉬웠다. Prob. A 잘 생각해보면 원점 기준 상하좌우로 모두 움직여야 한다면 불가능하고, 나머지는 가능하다. Prob. B 자연스럽게 2로 나눈 나머지를 생각할 수 있고, 2로 나눈 나머지가 한 종류라면 4로 나눠보면 두 가지로 갈라질 수 있고, 그게 안 되면 8..