본문 바로가기

분류 전체보기

(782)
구간 DP, 크누스 최적화 [1. 개요]구간 DP 크누스 최적화크누스 최적화는 구간 DP의 특정 조건을 만족할 때, 시간복잡도를 줄일 수 있는 방법최적 분할점은 단조롭게 증가한다는 성질을 이용한다.[2. 구간 DP]bottom-up[3. 크누스 최적화]아래와 같은 조건을 만족할 때 적용 가능하다.cost(a, c) + cost(b, d) # 사각 부등식# a # 구간이 겹칠 때 비용 합이, 큰 구간과 작은 구간의 비용합보다 크지 않아야 한다.cost(b, c) # a # 작은 구간의 비용이 큰 구간의 비용보다 크지 크지 않아야 한다.이 때, [i, j] 를 나누는 구간 k 를 설정하기 위해, [i, j] 를 탐색 범위로 잡는 것이 아니고,opt[i][j] ( 구간 [i, j] 를 최적으로 분할하는 위치 ) 를 k 라 할 때, k..
11066. 동적계획법 [1. 문제 설명]https://www.acmicpc.net/problem/11066[2. 풀이 접근][3. 코드]
17103. [1. 문제 설명]https://www.acmicpc.net/problem/17103[2. 풀이 접근][3. 코드]
2485. [1. 문제 설명]https://www.acmicpc.net/problem/2485[2. 풀이 접근]아래와 같은 생각이 들었는데간격이 제일 좁은 것 부터 1까지 줄이면서 배치하는 방식간격이 짝수, 홀수가 섞여있으면 모든 간격을 1로 배치 할 수 밖에 없음 등.여러 수들의 최대공약수를 구하면 위와 같이 복잡하게 생각할 것 없이 해결 가능하다. 최대 공약수 결합 법칙 gcd(a, b, c) = gcd(gcd(a, b), c)GCD의 본질은 "모든 수를 나눌 수 있는 최대 정수"gcd(a, b) = d 라 하면, d는 a와 b를 모두 나눌 수 있고,여기서 gcd(d, c) 를 구하면 결국 a, b, c 모두를 나누는 최대 정수가 된다.중간에 어떤 순서로 묶든 "모두를 나누는 최대 정수"라는 본질이 변하지 않..
[결정문제] ARCTIC [1. 문제 설명]https://www.algospot.com/judge/problem/read/ARCTIC[2. 풀이 접근] [3. 코드]
[수치해석] LOAN [1. 문제 설명]https://www.algospot.com/judge/problem/read/LOAN[2. 풀이 접근] [3. 코드]
[수치해석] FOSSIL [1. 문제 설명]https://www.algospot.com/judge/problem/read/FOSSIL[2. 풀이 접근] [3. 코드]
[수치해석] RATIO [1. 문제 설명]https://www.algospot.com/judge/problem/read/RATIO[2. 풀이 접근][3. 코드]
add_dependencies [1. 개요]빌드(컴파일) 순서를 결정하는 add_dependencies 는 target_link_libraries 와 어떤 차이가 있는지 정리한다.[2. target_link_libraries / add_dependencies]target_link_libraries 도 빌드 순서를 제어한다는 점에서 add_dependencies 와 유사하다.그러나 가장 큰 차이점이 있다면 링킹 처리 순서도 관여한다는 점이다. 그렇다면, add_dependencies 가 유용한 순간은 언제인가?target 간 실제 의존성이 있지는 않지만 (링킹과 관련 없지만) 빌드 순서를 제어할 필요가 있을 때add_custom_command 나 add_custom_target 등으로 먼저 빌드해야 할 것이 있을 때등이 있다.[3. 결..
LINK_LIBRARIES 와 INTERFACE_LINK_LIBRARIES 의 차이점 [1. 개요]get_property 를 통해 라이브러리 참조 관계를 가져와 일부 수정 후set_property 를 통해 적용했다 생각했지만,cmake 빌드 결과에서 해당 target 의 라이브러리 참조 관계는 적용되지 않았다. 이는, LINK_LIBRARIES 대상으로만 수정이 되었고,INTERFACE_LINK_LIBRARIES 를 대상으로는 수정이 되지 않았기 때문이었다.[2. PRIVATE, PUBLIC, INTERFACE]target 의 헤더파일 참조 경로나 라이브러리 링킹 정보를 명시할 때 scope 를 지정할 수 있다.PRIVATE: 해당 target 만 참조 (이 target 을 참조하는 대상은 상관없음)PUBLIC: 해당 target 및 이 target 을 참조하는 대상도 영향을 받음INT..