2018/05/12

알고리즘/잡설

suffix array + lcp

1. suffix array설명은 갓-crocus 블로그가, lcp설명은 plzrun 블로그가 제일 정리가 잘 되어있다. 2. suffix array의 존재이유는 lcp를 위해 있다고 해도 과언이 아니다. 3. O($nlogn$)만에 구하는 알고리즘도 있다. O($nlog^2n$) 알고리즘보고 오 기수정렬이랑 비슷하다 생각했는데 역시 radix sort를 이용한단다. 자료구조수업때 한번 본 이후로 처음 보며 처음 써본다. 제대로 이해하기 위해서는 radix sort를 다시 봐야겠다. 설명은 plzrun 블로그. 4. lcp가 이용되는 대표적인 문제는 BOJ_가장 긴 문자열 이다. 한 문자열에서 두 번 이상 나오는 문자열을 포함하는 suffix는 suffix array에서 항상 인접하고, lcp의 정의에 ..

알고리즘/CodeForces

Codeforces Round #476 (Div. 2)

A. Paper Airplanes$\!$ $k$명의 사람이 각각 $n$개의 종이비행기를 접으려 하는데 종이 1장당 종이비행기 $s$개를 만들 수 있다. 한 묶음에 $p$개의 종이가 들어있는 묶음을 몇 묶음 사야 하는지 출력하는 문제이다. 단, 1장의 종이를 찢어서 두 사람에게 나누어 줄 수가 없다. 먼저 예제를 보자. $(k, n, s, p) = (5, 3, 2, 3)$이다. 장당 2개의 종이비행기를 만들 수 있고, 한 사람이 3개의 종이비행기를 접어야 하므로 한 명당 2개의 종이가 필요하다. 5명이므로 10개의 종이가 필요하게되고, 한 묶음당 3개의 종이가 들어있으므로 총 4묶음을 사야 10개의 종이를 구할 수 있다. 즉, (($n$보다 크면서 가장 작은 $s$의 배수 $*$ k) 보다 크면서 가장 작..

피곤한투티
'2018/05/12 글 목록