목록백준/Tree (5)
mojo's Blog
문제 링크 : 11812번: K진 트리 (acmicpc.net) 11812번: K진 트리 첫째 줄에 N (1 ≤ N ≤ 1015)과 K (1 ≤ K ≤ 1 000), 그리고 거리를 구해야 하는 노드 쌍의 개수 Q (1 ≤ Q ≤ 100 000)가 주어진다. 다음 Q개 줄에는 거리를 구해야 하는 두 노드 x와 y가 주어진다. (1 ≤ x, y www.acmicpc.net 문제 각 노드가 자식을 최대 K개 가질 수 있는 트리를 K진 트리라고 한다. 총 N개의 노드로 이루어져 있는 K진 트리가 주어진다. 트리는 "적은 에너지" 방법을 이용해서 만든다. "적은 에너지" 방법이란, 이전 깊이를 모두 채운 경우에만, 새로운 깊이를 만드는 것이고, 이 새로운 깊이의 노드는 가장 왼쪽부터 차례대로 추가 한다. 아래 그..
문제 링크 : 6549번: 히스토그램에서 가장 큰 직사각형 (acmicpc.net) 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ www.acmicpc.net 문제 히스토그램은 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이다. 각 직사각형은 같은 너비를 가지고 있지만, 높이는 서로 다를 수도 있다. 예를 들어, 왼쪽 그림은 높이가 2, 1, 4, 5, 1, 3, 3이고 너비가 1인 직사각형으로 이루어진 히스토그램이다. 히스토그램에서 가장 넓이가 큰 직사각형을 구하는 프로그램..
문제 링크 => 14725번: 개미굴 (acmicpc.net) 14725번: 개미굴 첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N개가 주어진다. (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 www.acmicpc.net 로봇 개미 개발을 완료한 윤수는 개미굴 탐사를 앞두고 로봇 개미를 테스트 해보기 위해 위 그림의 개미굴에 로봇 개미를 투입했다. (로봇 개미의 수는 각 개미굴의 저장소를 모두 확인할 수 있을 만큼 넣는다.) 다음은 로봇 개미들이 윤수에게 보내준 정보다. KIWI BANANA KIWI APPLE APPLE APPLE APPLE BANANA KIWI (공백을 기준으로 왼쪽부터 순서대로 로봇 ..
문제 링크 => 2250번: 트리의 높이와 너비 (acmicpc.net) 2250번: 트리의 높이와 너비 첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다. www.acmicpc.net 트리에 대한 문제이다. 문제 input 이 하나밖에 없어서 강박관념에 벗어나지 못할 만한 그런 문제이다. (간단하지만 어려운 문제) 먼저 문제 접근 방법은 다음과 같다. 1. 트리를 형성한다. 2. root 노드를 찾는다. 3. 중위 운행을 통해 해당 노드의 level, position을 부여한다. 4. level 별로 position 을 오름차순으로 정렬 후, 너비를 구..
문제 링크 => 2042번: 구간 합 구하기 (acmicpc.net) 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 세그먼트 트리를 이용한 구간 합 구하기 문제이다. 이 문제에서 쿼리 2개를 통해 다음과 같은 operation 을 한다. 1. 배열의 index = b 를 update 하기 이부분은 1차원 배열 arr에 대하여 arr[index] = c 로 O(1) 만에 변경이 가능하지만 기존에 만들어둔 세그먼트 트리를 활용하지 못한다. 다른 방법을 ..