본문 바로가기

전체 글

(147)
제1회 보라매컵 예선 Open Contest 제1회 보라매컵 예선 Open Contest www.acmicpc.net A - 특식 배부 단순 수학 00:01 AC B - 출입 기록 단순 구현 00:03 AC E - 조교의 맹연습 dijkstra 00:12 AC 정해는 knapsack dp이며 dijkstra보다 훨씬 빠르게 돌아간다. C - 시간 외 근무 멈춰! 마감 기한이 빠른 순으로 처리하면 된다. 00:17 WA while 문 대신 if 문을 사용하였다. 00:18 TLE if 문을 while 문으로 바꾸니 반복문이 중첩되었고 break 문이 오작동하였다. 00:19 AC 실버 문제에 페널티를 두 번이나 쌓았다. ps는 확실히 스트레스다. F - 통신소 대각선 누적 합 26009번 코드를 복붙한 후 살짝 수정하였다. 00:35 AC 26009..
Hello 2023 Dashboard - Hello 2023 - Codeforces codeforces.com A - Hall of Fame L과 R이 각각 한 번 이상 등장해야 한다. 00:04 AC B - MKnez's ConstructiveForces Task if N == 3 then impossible :( elif N % 2 == 0 then repeat 1 and -1 else repeat (N / 2 - 1) and (-N / 2) 00:16 AC C - Least Prefix Sum K > M인 경우와 K M이고 S[K] < S[M]인 K가 존재한다면 연산이 필요하다. 조건을 만족하는 K가 여러 개라면 그중..
나는코더다 2022 송년대회 Open Contest 나는코더다 2022 송년대회 Open Contest www.acmicpc.net A - 시로코와 은행털기 knapsack dp 00:07 AC E - 겨울 축제 감동 수치가 i인 팀 K개를 합치면 감동 수치가 (i + 1)인 팀이 만들어진다. 이러한 방식으로 최대한 많은 팀을 합치면 된다. 선택되지 않은 팀은 다시 K개의 팀으로 분할해야 한다. 00:47 WA 변수명을 혼동하였다. 00:49 AC I - 다오의 행사 계획하기 LCA + 누적 합 01:20 AC B - 캠핑하기 식을 정리하면 일차함수의 최댓값을 구하는 문제가 된다. 후보 함수를 적절히 관리하면서 해결하였다. 02:52 WA 수식에 오류가 있었다. 02:57 WA 여전히 수식에 오류가 있었다. 02:58 RTE iterator 사용이 미흡하..
2023년 1월 13일 일기 겨울 숲의 초대 이후로 거의 한 달 동안 대회 참가와 업솔빙만 반복하면서 지냈다. 이제 모든 업솔빙이 끝나서 조금 여유가 생겼는데 그 대신 글이 많이 밀렸다. 작성 예정인 글 목록은 다음과 같다. Good Bye, BOJ 2022! (G번 H번) 나는코더다 2022 송년대회 Open Contest Hello 2023 제1회 보라매컵 예선 Open Contest 2020 ACM-ICPC Seoul Regional 보드게임컵 (참가 예정) Hello, BOJ 2023! (참가 예정) 막상 적어보니 많지는 않다. 아무튼 연말에 어려운 대회가 쏟아져 나와서 업솔빙이 정말 오래 걸렸다. 특히 나는코더다 업솔빙이 힘들었는데 덕분에 cht와 dnc opt는 잘 배웠다. 내일은 보드게임컵에 참가하고 서울로 일찍 올라간..
BOJ 19089번 - 파일 합치기 4 19089번: 파일 합치기 4 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net Garsia-Wachs algorithm 또는 Hu-Tucker algorithm으로 풀이할 수 있다. 나는 Garsia-Wachs algorithm으로 풀이하였다. 원본 논문보다는 이 논문을 보는 것을 권장한다. 알고리즘 자체는 간단한데 다음 두 단계를 N - 1번 반복하면 된다. (i) Locate the rightmost R.M. pair of entries. Let that be p_i-1, p_i. (ii) Next locate the first en..
SciOI 2022 Open Contest SciOI 2022 Open Contest www.acmicpc.net A - 카드 뽑기 식을 정리하면 답은 mul(각 수의 등장 횟수 + 1) - 1이 된다. 00:12 AC D - 직육면체 각 면의 면적은 p의 배수가 되므로 적어도 두 변의 길이는 p의 배수여야 한다. 00:21 AC C - 점수 내기 Fenwick Tree로 눈물의 똥꼬쇼를 펼쳤다. 01:09 WA WA의 원인을 찾지 못해서 stress test를 돌렸고 계산 과정에서 사소한 오류가 있음을 발견하였다. 01:30 AC 정해는 dp를 이용하는데 Fenwick Tree 풀이보다 훨씬 간단하다. 다음과 같은 배열 A와 psum을 정의하자. A[i] = 점수가 i인 학생의 수 psum[i] = sum(A[1 .. i]) A와 psum 배열..
Good Bye, BOJ 2022! Good Bye, BOJ 2022! www.acmicpc.net 서론 전체 599명의 참가자 중 35등으로 오프라인 본선에 진출하였다. 수상 가능성은 0에 가까워서 가볍게 여행 다녀온다고 생각해야겠다. A - 2022년이 아름다웠던 이유 구현 00:06 AC B - 나무 블럭 게임 ans = max(avg, A[N - 1]); 00:12 AC D - 이미지 보정 작업 이분 탐색 + bfs 00:38 AC C - 데이터 순서 복원 임의의 단계 a와 b에 대하여 a와 b의 서열을 알 수 있다. 이를 이용하여 위상 정렬하면 된다. 00:46 AC 정해는 직관적이지 않아서 Pass 2023/01/10 추가 위상 정렬은 overkill인데 단순히 사용자 정의 함수로 정렬하면 된다. E - 리그전 상위 (k - 1..
Good Bye, BOJ 2021! Good Bye, BOJ 2021! www.acmicpc.net 서론 2022년 대회 예비소집 문제로 출제되었다. A - 2021은 무엇이 특별할까? 전처리 B - 예쁜 케이크 a * b = N and (a + b) % 3 = 0인 a와 b가 존재하는지 확인해야 한다. case work를 해보자. (i) a % 3 == 0 and b % 3 == 0 a와 b 모두 3의 배수이므로 N % 9 == 0이어야 한다. (ii) a % 3 == 1 and b % 3 == 2 a와 b는 각각 (3k_a + 1)과 (3k_b + 2)로 표현할 수 있다. 이때 a와 b의 곱은 (3 * (3 * k_a * k_b + 2 * k_a + k_b) + 2)이다. 따라서 N % 3 == 2이어야 한다. (iii) a % 3 =..