본문 바로가기

728x90

분류 전체보기

(24)
JOI Open Contest 2017 * 모바일 환경에서 레이텍이 깨지는 현상이 있는 것 같다. 구글 크롬의 경우, 우측 상단의 점 세 개를 눌러 메뉴를 열고 "데스크톱 보기"를 활성화하는 것으로 해결할 수 있다. 2017년에 진행된 JOI Open Contest 2017의 풀이이다. 대회는 총 3개의 문제를 5시간 동안 해결해야 하며, 각 문제는 부분 문제가 있다. 각 문제별 배점은 100점으로, 총 300점 만점이다. 1. Amusement Park https://oj.uz/problem/view/JOI17_amusement_park 문제 보기 - Amusement Park (JOI17_amusement_park) :: oj.uz 문제 보기 - Amusement Park (JOI17_amusement_park) oj.uz JOI와 IOI..
2022 나코더 송년대회 후기 (+ 풀이) * 이 글에서는 대회 후기+복기 위주로 작성하고, 어려운 문제는 따로 글로 작성할 예정이다. 경기과학고 ps 동아리 나코더에서 12월 27일 송년대회가 열렸는데, 나는 [BIG SHOT]이라는 팀 이름으로 같은 39기인 박종경, 김기범과 함께 참가했다. 5시간동안 12문제를 풀어야 했고, A, B, E, I, J, K를 풀고 2등과 근소한 차이(패널티 40차이)로 3등을 했다. 0:00 ~ 0:13 내가 ABCD, 기범이가 EFGH, 종경이가 IJKL을 읽었다. A에 넥슨 그림이 있어서 넥슨 스폰서 문제임을 알게 되었고, 특별상이 걸린 넥슨 스폰서 문제면 어려운 문제는 아닐 것으로 추측하고 바로 풀었다. 오타내고 1번 틀려서 2번만에 맞았다.(0:13:19) A는 두 수열 $A_i$와 $B_i$가 주어지..
최대 유량 알고리즘 1 (Ford-Fulkerson, Max Flow Minimum Cut Theorem) 최근 유량 알고리즘들을 공부해 봤는데, 정리와 증명이 명확하게 정리된 블로그가 잘 없는 것 같아서 정리한다. * 모바일 환경에서 레이텍이 깨지는 현상이 있는 것 같다. 구글 크롬의 경우, 우측 상단의 점 세 개를 눌러 메뉴를 열고 "데스크톱 보기"를 활성화하는 것으로 해결할 수 있다. 0. 용어 정의 다음과 같이 그래프, 소스 정점, 싱크 정점, 용량 함수가 주어졌다고 하자. graph $G=(V, E)$, source $s \in V$, sink $t \in V (s \ne e)$, 용량 함수 $c : V \times V \longmapsto \mathbb{R}^{+}$ (수학에서는 이 네 요소 $(G, c, s, t)$를 flow network라 한다.) 이때, $G$의 소스에서 싱크로 물건을 옮기는..
백준 10075 친구 (IOI 2014 Day 2 2번) (2023-08-29 수정 : 제 블로그 코드를 치팅하는(그대로 배껴서 내는) 경우가 너무 많아서 코드를 삭제했습니다.) 문제 설명(링크): https://www.acmicpc.net/problem/10075 10075번: 친구 0, ... , n-1로 번호가 매겨진 n명의 사람으로 구성된 소셜 네트워크를 만들자. 이 네트워크에 있는 사람들 중 어떤 쌍은 서로 친구가 된다. 즉, 사람 x가 사람 y의 친구가 되면, 사람 y도 사람 x의 친 www.acmicpc.net 문제 요약 특이한 그래프가 주어지고, 정점마다 가중치가 있어서 최대 독립 집합을 찾아야 한다. 풀이 우선 그냥 최대 독립 집합을 구하는 문제는 매우 어려운 문제고, NP라 다항시간 풀이도 없다. 그러나, 트리의 경우라면 매우 쉬워진다. $d..
백준 21794 Navigation 2 (JOISC 2020/2021 Day 4 2번) 문제 설명(링크) https://www.acmicpc.net/problem/21794 21794번: Navigation 2 C++17, C++14, C++20, C++14 (Clang), C++17 (Clang), C++20 (Clang) www.acmicpc.net 풀이 14는 조금 어렵고, 13은 어렵고, 12는 더 어렵다. 14 풀이 x좌표, y좌표가 3의 배수인 칸마다 14를 쓴다. 하나의 14 주위의 8개의 칸을 다음과 같이 번호를 붙이자. 0 1 2 3 14 4 5 6 7 7번 칸은 현재는 사용하지 않는다. 아무 수나 채우자. 14가 가운데에 위치한 3*3의 영역을 블럭이라 하자. 한 블럭의 14를 기준으로, 그 블럭과 $i$번째 도착점의 상대적인 위치관계를 아래 표와 같이 표시하자. 14가 ..
백준 15776 New Home (APIO 2018 A번) 문제 설명(링크) https://www.acmicpc.net/problem/15766 15766번: New Home Wu-Fu Street is an incredibly straight street that can be described as a one-dimensional number line, and each building’s location on the street can be represented with just one number. Xiao-Ming the Time Traveler knows that there are n stores of k store www.acmicpc.net 문제 요약 1차원 직선에 여러 가게가 있고 종류는 1부터 $K$이다. 각 가게는 $[a_i, b_i]$시간동안 ..
백준 18847. Stray Cat (JOISC 2019/2020 Day 3 3번) 문제 설명(링크): https://www.acmicpc.net/problem/18847 18847번: Stray Cat The sample grader is the file grader.cpp. In order to test your program, put grader.cpp, Anthony.cpp, Catherine.cpp, Anthony.h, Catherine.h in the same directory, and run the following command to compile your programs. g++ -std=gnu++14 -O2 -o grader grader www.acmicpc.net 문제 요약 투스텝 문제인데, 첫 번째 실행에는 그래프가 주어져서 그래프 간선에 $A$ 미만의 음이아닌 정..
백준 15261 Donut Drone (CERC 2017 D) 문제 설명(링크): https://www.acmicpc.net/problem/15261 15261번: Donut Drone The first line contains two integers r and c (3 ≤ r, c ≤ 2 000) — the number of rows and the number of columns of the toroidal grid. The i-th of the following r lines contains a sequence of c integers ei,1, ei,2, . . . , ei,c (1 ≤ ei,j ≤ 109) — www.acmicpc.net 문제 요약 도넛처럼 생긴 격자판에서 각각의 높이가 있는데, 한 칸에서 시작할 때 다음으로 갈 칸은 왼쪽 위, 왼쪽, 왼쪽 ..
백준 8987 수족관 3 (KOI 2013 4번) 문제 설명(링크) https://www.acmicpc.net/problem/8987 8987번: 수족관 3 입력의 첫 줄은 수족관의 경계에 있는 꼭짓점의 개수 N(4 ≤ N ≤ 300,000)이 주어진다. N은 짝수이다. 수족관의 경계는 항상 꼭짓점 (0, 0)부터 시작한다. 그리고 마지막 꼭짓점은 (A, 0)의 형태로 끝난 www.acmicpc.net 풀이 풀이가 다양한 것 같은데, 내가 푼 풀이 기준으로 설명하겠다. 우선 수족관의 모양이 히스토그램과 유사하므로, 카르테시안 트리로 모델링할 수 있다. 수족관을 카르테시안 트리로 모델링하면 특정 정점을 선택하면 그 정점과 그 정점의 모든 조상 정점에 해당하는 영역의 물이 빠진다. 또한 한번 물이 빠진 영역은 당연하게도 물을 다시 뺄 수 없다. 이런 특성들..
백준 16977 히스토그램에서 가장 큰 직사각형과 쿼리 문제 설명(링크) www.acmicpc.net/problem/16977 16977번: 히스토그램에서 가장 큰 직사각형과 쿼리 히스토그램은 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이다. 각 직사각형은 같은 너비를 가지고 있지만, 높이는 서로 다를 수도 있다. 예를 들어, 왼쪽 그림은 높이가 2, 1, 4, 5, 1, 3, 3 www.acmicpc.net 문제 요약 [l, r]영역의 직사각형만 사용하여 너비가 w인 직사각형 중 가장 넓이가 큰 것을 출력하는 문제이다. 풀이 과정 너비가 정해져 있으므로, 높이가 가장 큰 것이 넓이가 가장 크다. 또, 높이가 h인 직사각형이 존재하면 h-1인 직사각형도 존재하므로, h에 대한 이분탐색을 할 수 있다. 높이가 h인 직사각형이 존재한다는 것의 필요충분조건은..

728x90