Skip to content

Commit

Permalink
Create 2023-12-30-scioi23.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Annyeong-One authored Dec 30, 2023
1 parent fda8b53 commit 0d69bac
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions _posts/2023-12-30-scioi23.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: SciOI 2023 Open Contest
author: Annyeong1
date: 2023-12-30 20:30:00 +0900
categories:
- CP
- BOJ
tags:
- cp
- boj_contest
- boj
math: true
mermaid: true
---
12월 30일 진행한 서울과학고등학교 SciOI 대회이자 16번 아레나 대회 일지입니다. 5시간 중 2시간 반 정도 잡은 것 같습니다.

## 0:00~0:06
- A1번을 잡았습니다.
- 그냥 한번에 $mk-1$명씩 이동하는 아이디어가 되는 문제였습니다.
- 맞았습니다.

## 0:06~0:09
- A2번을 잡았습니다.
- 그냥 시키는 대로 하면 됩니다.
- 맞았습니다.

## 0:09~0:40
- C1번을 잡았습니다.
- 발상 1(9분): 짝수나 1이라면 불가능합니다.
- 발상 2(10분): 처음에 어디를 지우고 남은 턴동안 상대가 지운 것의 반대쪽을 지우는 행동을 취할 수 있으면 됩니다. 즉 가운데에 괄호가 있으면 됩니다(아닙니다).
- 틀렸습니다.

## 0:40~1:10
- 점심을 먹었습니다. 제육볶음이 맛있었습니다.

## 1:10~1:30
- 발상 3(75분): 가운데에 괄호가 있지 않아도 됩니다. 하나씩 지워가면서 올바른 괄호열이 나오는지 직접 확인해야 합니다.
- 구현했고 맞았습니다.

## 1:30~1:55
- A3번을 잡았습니다.
- 발상 1(5분): 중간고사를 기준으로 정렬하고 커트가 될 수 있는 곳들을 잘 찾을 수 있습니다. 이들을 모두 저장하고 왼쪽 것을 고른 뒤 오른쪽 것을 중간 위치 근처로 lower_bound하면 $O(n \log n)$입니다.
- 커트가 될 수 있는 곳을 찾는 과정에서 실수를 여러 개 해서 고치고 맞았습니다.

## 1:55~2:28
- B1번을 잡았습니다.
- 발상 1(5분): 만약 출발지점으로 돌아오는 조건이 있다면, 지나는 모든 간선은 정확히 두 번 세집니다.
- 발상 2(10분): 즉, 임의의 간선에 대해, 루트 방향으로 있는 정점의 수를 x개, 반대 방향의 정점을 n-x개로 두면 둘에서 합쳐서 k개를 뽑는 경우의 수의 두 배만큼 세집니다. 이제 여기서 출발지점으로 돌아오는 것을 빼면 됩니다.
- 발상 3(20분): 돌아올 때의 경로는 아예 다른 방법으로 세줄 수 있습니다. k개를 고르면 그중 가장 깊은 것이 도착지가 되므로, 깊이를 고르고 그 깊이 이내에서 k개가 골라지는 것의 수를 찾아 그것에 깊이를 곱한 것을 위에서 빼면 됩니다.
- 구현했고 맞았습니다.

## 2:28~3:00
- B2와 C2의 부분점수를 보았습니다.
- 귀찮아서 포기했습니다.

## 후기
- 33등을 했습니다. 문제가 나름 재미있었던 것 같습니다.
- C1을 7틀한 것이 아쉽지만 이정도면 잘 풀어내지 않았나 싶습니다.
- SS에 달성하며 학교에서 학년 1등이 되었습니다.

0 comments on commit 0d69bac

Please sign in to comment.