대회 문제들은 여기서 확인하실 수 있습니다. 문제별로 제가 기여한 것들과 짧은 후기를 정리해보겠습니다. 전체적인 제안 검수를 딱 하려고 보니까 문제별로 tests가 150개를 넘어가던 걸로 기억합니다. 가뜩이나 Arena가 적용되어서 참가자 수가 많아질 것 같은데 tests가 이대로 많으면 안 될 것 같다고 줄여달라고 제안을 드렸습니다. 좀 늦게 제안했는데, 왜 그 전까지는 아무도 말을 안 꺼냈는지는 잘 모르겠네요.. 😅 또, 그래프 문제들의 조건에서 "$1\le i , j\le N$인 모든 $i$, $j$에 대해서 $i$번 구역에서 $j$번 구역으로 가능 경로가 항상 존재"를 " $1 \le i < j \le N$인 모든 $i$, $j$에 대해서 $i$번 구역과 $j$번 구역을 연결하는 경로가 존재"로..
어제 KOI 2023 2차 대회가 있었다. 내 목표는 은상 상위권(10등 이내)에 드는 것이었다. 이를 위한 내 전략은 1번과 2번 문제를 풀고 3번과 4번의 부분문제에서 최대한 점수를 긁는 것이었다. 하지만 2번과 3번의 난이도 역전으로 인해 이 전략은 실패했다. 2번과 3번의 난이도 역전은 근 10년간 전무해 보인다. 풀면서 2번보다 3번이 쉬운 것 같다는 생각이 자꾸 들었지만, 난이도가 역전될 일은 없다고 믿고 전략을 유지했다. 2번 유형보다 3번 유형에 강점이 있는 것도 알지만, 그냥 그대로 갔다. 2번과 3번의 배치가 반대였다면 분명히 은상을 탔을 것이다. 다만, 은상 상위권(10등 이내)은 힘들었을 것 같다. 1번 문제를 빠르게 푸는 것, 3번과 4번 문제에서 적절한 부분문제를 선택하여 실수없..
저는 2020년도 말에 알고리즘 분야(PS)를 접하게 되었습니다. 2023년에 들어서 운 좋게 SUAPCw의 Call for Tasks에 뽑히게 된 것을 시작으로 6개의 대회에 운영진으로 참가하였습니다. 또한 3개의 개인 문제를 검수하였습니다. 이 글을 쓰는 시점에서 5개의 개인 문제 검수와 1개의 대회 출제/검수를 진행 중에 있습니다.dohoon의 만든 문제dohoon의 검수한 문제네이버 블로그에 후기를 남겨 왔지만 개인적인 내용이 담겨 있어서 대부분 공개를 하지는 않았습니다. 대신 이렇게 티스토리 블로그를 통해 전반적으로 정리하여 다른 분들께 도움이 되는 대회 운영/출제/검수에 관한 시행착오들을 기록해보고자 합니다. 짧은 후기 모음Codeforces Round #851 (Div.2)테스터로 참여했습니..
KOI는 Korean Olympiad in Informatics의 약자로, 한국 정보 올림피아드를 말합니다. 이 대회는 1차 대회와 2차 대회로 이루어져 있고, 1차 대회는 이산 수학을 바탕으로 하는 수학 문제들로 이루어진 1교시와 알고리즘 문제들로 이루어진 2교시로 나누어 진행됩니다. 자세한 정보는 koi.or.kr에서 확인하실 수 있습니다. koi.or.kr에 2교시 문제들의 풀이는 공개되어 있지만 1교시 문제들의 풀이는 제공하지 않아서 풀이를 작성했습니다. 팀원 찾기: 엄밀한 증명 고민 중... 1교시 풀이 문제의 지문은 링크에서 확인하실 수 있습니다. 또한, biko.kr에서 문제를 채점받을 수 있습니다. 다음은 각 문제에 대해 개인적으로 부여한 난이도와 실제 배점입니다. 1. 그래프의 지름 2...
배열과 gcd 문제 링크 난이도가 P3보다 높아져야 하는 문제라고 생각한다. 풀이 더보기 $\mathrm{let\ }b_i=C_{i-1},\ G_i=C_i,\ b_i=B_i\times G_i.$ $\mathrm{let\ }x_i=X_i\times G_i.$ 만약 $G_i\nmid b_i$였다면 $0$을 출력하고 프로그램을 종료한다. 그러면 문제는 각 $i(\ge 2)$에 대해 $\left [1,\lfloor \frac {num} {G_i}\rfloor \right ]$ 속의 $B_i$와 서로소인 $X_i$의 개수를 구해서 전부 곱하는 문제로 바뀐다. (가능한 모든 $X_i$에 대해 $x_i$는 $a_i$로 가능한 모든 값들이다.) euler totient 함수를 변형해보겠다는 생각도 해볼 수 있지만 힘들..
링크 Cow Curling FJ의 농장에서 컬링 대회가 열렸다. 이 컬링 대회의 규칙은 일반 대회와는 조금 다르다. 겨루는 두 팀에게는 각각 $N$개의 돌이 주어진다. 만약, 한 팀의 세 개의 돌이 이루는 삼각형 내부에 상대 팀의 돌이 들어있다면, 이 돌은 포획되었다고 한다. (선분 위에 올라간 경우도 포함한다.) 각 팀의 점수는 상대 팀의 포획된 돌의 수로 계산된다. 두 팀의 돌의 배치가 2차원 평면 상의 좌표로 주어질 때, 각 팀의 점수를 계산하여라. 풀이 더보기 아이디어는 굉장히 쉽다. 그냥 각 팀의 convex hull을 각각 만들고, 상대 팀의 돌이 몇 개 들어가는지를 계산하면 된다. 이때, 볼록다각형의 내/외부점 판별 알고리즘을 이용하면 된다. 이 문제의 경우, 각 점에 대해서 따로따로 판별할..