[17318] Highway Cycling
·
PS | CP/Baekjoon OJ
조건은 다음과 같이 됩니다. $w_i$를 $i$번째 도로에서 달리는 속도라고 하면, $$\begin{gather*} E_i := k_i(w_i - v_i)^2s_i \\ E_u = \sum E_i \\ T = \sum \frac{s_i}{w_i} \end{gather*}$$ 여기서 $E := \sum E_i$를 $\mathbf{w}$ 벡터의 공간에서 $\mathbb{R}$ 공간으로 보내는 다변수함수로 볼 수 있습니다. 마찬가지로 $T$도 그렇게 둘 수 있겠네요. $E - E_u = 0$이므로 라그랑주 승수법을 먹여 전체 조건을 다음과 같이 변형할 수 있습니다. $$\begin{gather*}E = E_u\\\nabla (E - E_u) = \lambda \nabla T\end{gather*}$$ 풀어 정..
[미분방정식] 상수 계수 Linear Homogeneous DE와 Characteristic Equation
·
수학
2nd order의 경우를 갖고 따져보자. $$Ly = ay'' + by' + cy = 0, (a \neq 0, a, b, c \in \mathbb{R})$$ 얘의 해가 $y = e^{rt}$의 꼴이라고 하면 방정식에 대입했을 때 $$ar^2e^{rt} + bre^{rt} + ce^{rt} = 0$$ $$(ar^2 + br + c)e^{rt} = 0$$ 이 된다. 이걸 만족하는 $r$을 찾기 위해서는 $ar^2 + br + c = 0$을 풀면 된다. $e^{rt}$는 0이 될 수 없기 때문에... 아무튼 여기서 이 방정식 $ar^2 + br + c = 0$을 Characteristic Equation이라고 부르는 모양이다. 우리가 잘 아는 근의 공식을 이용해 $r$을 구할 수 있다. $$r = \frac..
[18806] 와일드 카드
·
PS | CP/Baekjoon OJ
부제: Wildcard string matching with Fast Fourier Transform 문제 분석 우선 지문을 읽어봅시다. 길이 25만의 알파벳 소문자 + '$?$' + '$*$'로 구성된 문자열이 두 개 들어옵니다. 문제에서 제시한 조작으로 두 문자열이 '같도록' 하면 됩니다. 문제에서 제시한 조작(연산)은 세 가지로, 문자 삽입, 문자 삭제, 문자 치환입니다. 그런데 사실 연산이 셋이나 있을 필요가 없습니다. 그 이유는 문자 '$*$'의 성질 때문인데, 이 녀석은 모든 문자이면서 모든 문자열로 취급될 수 있기 때문에 '치환'과 '삽입'의 역할을 대체할 수 있고, 길이가 0인 문자열로 취급될 수도 있기 때문에 '삭제'의 역할을 대체할 수 있습니다. 따라서 가용 연산을 다음과 같이 간단하게..
[19499] K-transform
·
PS | CP/Baekjoon OJ
거꾸로 생각합시다. k-transform으로 만들어지는 수는 $k(k(k(...(k(1+a_0)+a_1)...+a_{n-1}) + a_n$의 꼴($0 \leq a_n < k, a_0 \neq k-1$)이고, 여기서 $\sum_{i=0}^na_i + n = m$이 됩니다. 저걸 전개해버리면 $(1+a_0)k^n + a_1k^{n-1} + ... + a_{n-1}k + a_n$입니다. 이걸 $k$진 수로 생각하면 $(1+a_0)a_1a_2a_3...a_{n-1}a_{n\ (k)}$, 그러니까 $\text{digit sum} + \text{digit}-1 = m$인 모든 $k$진 수의 개수를 구하는 문제가 됩니다. 쉽지 않네요... 그렇죠? 애초에 제약 없이 수를 나누는 문제도 중복조합으로 풀어야 하는데.....
[18968] Circle Union
·
PS | CP/Baekjoon OJ
아마 1학기 기말고사 기간에 풀었던 걸로 기억하는 문제. 푼 지는 꽤 됐는데 언젠가 글을 써야지 써야지 하다가 이제서야 쓴다. covered region을 최대화하려면 각 원이 모두 한 점에만 만나야 한다. 그러니까 모든 원(과 원 안의 부분)을 이루는 점의 집합의 교집합의 원소가 정확히 한 개여야 한다는 것이다. 그렇지 않은 경우엔 원 하나를 적절히 움직여서 더 넓은 covered region을 갖는 형태로 만들 수 있다. 그러면 원점을 지나는 원들의 형태를 다루는 문제가 된다. 정확히는 형태라기보다는 원의 중심이 존재하는 위치? 각도? 그런 것이다. 이제 문제 상황을 좀 편하게 다루기 위해 도형을 극좌표계로 펼쳐 보자. 극좌표계에서 원점을 지나고 반지름이 $R$인 원은 $r = 2R\cos(\thet..
[17399] 트리의 외심
·
PS | CP/Baekjoon OJ
클래스 8에 속한 문제. sparse table, 혹은 LCA만 알고 있다면 간단한 케이스 분류로 쉽게 풀 수 있다. 한 트리 위의 노드 $a, b, c$를 생각하자. 두 노드 $x, y$에 대해 $x$에서 $y$로 가는 경로를 $P_{xy}$라고 적기로 하고, 이제 $P_{ab}, P_{bc}, P_{ac}$를 생각해 보자. 그럼 다음이 성립한다. 1. $P_{ab}, P_{bc}, P_{ac}$는 항상 유일하게 존재한다. 왜냐? 트리니까. 한 노드에서 다른 노드로 가는 경로가 여러 개 있다는 건 사이클이 있다는 소린데 그럼 트리가 아님. 2. 세 경로 $P_{ab}, P_{bc}, P_{ac}$에 모두 속해 있는 노드는 항상 한 개 이상 존재한다. 트리이기 때문. 만약 그런 노드가 없다면 $a \to..
[17378] 공의 합집합
·
PS | CP/Baekjoon OJ
x축에 타코야끼마냥 중심을 꽂힌 다양한 크기의 구들이 있는데, 이 녀석들의 전체 부피를 구해야 한다. 그런데 서로 겹치는 경우가 생길 수 있기 때문에 그냥 구해서는 안 된다. 뭔가 방법을 써야 한다. 우선 3차원 상황을 그대로 써먹으려고 하면 불편하다. 어차피 문제 상황의 모든 도형이 x축을 중심으로 한 회전체 꼴이기 때문에 2차원 평면 위의 반원들로 차원을 낮추자. 각 공 $S_i = (x - x_i)^2 + y^2 + z^2 \leq r_i^2$들은 이제 $C_i = (x - x_i)^2 + y^2 \leq r_i^2\ (y \geq 0)$으로 생각하자. 그럼 부피는 간단하게 $\displaystyle \pi\int_{a}^{b} y^2dx = \pi\int_{a}^{b} \{r_i^2 - (x - ..
[16140] 정수론과 응용
·
PS | CP/Baekjoon OJ
가우시안 수 두 개 주고 GCD를 찾으라는 문제다. 3개의 subtask로 나누어져 있는데, 첫 번째는 새로운 차원을 사용하지 않는 정수 GCD, 두 번째는 아마도 좀 나이브하게 찾는(아니면 arctan 같은 걸 쓴다거나... 우웩.) 방식을 노린 것 같고, 마지막 subtask까지 전부 맞으려면 그보다는 좀 더 머리를 쓰는 방식을 요구하는 것으로 보인다. 우선 이 '가우시안 수' 라는 녀석을 살펴보자. 사실 그냥 복소수다. 이 가우시안 수 간의 곱셈은 다음과 같이 표현됨을 우리는 잘 안다. 두 복소수 $n = a + bi, m = c + di$에 대하여, $n \cdot m = (ac-bd) + (ad + bc)i$. 가우시안 수의 나눗셈에 대해 생각해 보자. 일단 가우시안 수를 서로 나눌 수는 있다...