divide and conquer

· PS/BOJ
https://www.acmicpc.net/problem/1725 1725번: 히스토그램 첫 행에는 N (1 ≤ N ≤ 100,000) 이 주어진다. N은 히스토그램의 가로 칸의 수이다. 다음 N 행에 걸쳐 각 칸의 높이가 왼쪽에서부터 차례대로 주어진다. 각 칸의 높이는 1,000,000,000보다 작거나 같은 자 www.acmicpc.net 세그먼트 트리 응용 문제 세그먼트 트리를 이용해 구간 합을 미리 구하거나 최솟값을 적는 등으로 활용이 가능했으나, 해당 문제에서는 tree[node]에 가장 작은 값의 인덱스를 집어 넣어 문제를 해결할 수 있다. 원리는 아래와 같다. 예제로 살펴보면, 먼저 가장 작은 값의 인덱스인 1을 기준으로 히스토그램의 넓이를 구한다. 이후 1의 왼쪽과 오른쪽을 다시 기준으로 ..
· PS/BOJ
https://www.acmicpc.net/problem/18222 18222번: 투에-모스 문자열 0과 1로 이루어진 길이가 무한한 문자열 X가 있다. 이 문자열은 다음과 같은 과정으로 만들어진다. X는 맨 처음에 "0"으로 시작한다. X에서 0을 1로, 1을 0으로 뒤바꾼 문자열 X'을 만든다. X의 뒤에 www.acmicpc.net 처음에 0이 존재 다음에는 이를 비트반전 시킨 문자열을 뒤에 추가한다. 이를 무한으로 반복했을 때 N번째 자리의 숫자를 구하는 문제 0 01 0110 01101001 0110100110010110 ... 이렇게 증가하는데, 여기에는 규칙이 있다. 만약 N번째 자리의 수를 구한다면, N번째 자리의 숫자는 N - 2^x의 숫자를 반전 시킨 값이다. N - 2^x는 1이 되거..
sy46
'divide and conquer' 태그의 글 목록