해법 노트 AtCoder Grand Contest 023 C - Painting Machines
문제 문장 : AtCoder Grand Contest 023 C - Painting Machines
해법
다만 $K$개 가동했을 때 전부 칠할 수 있는 순열의 개수 $g(K)$를 세면 답은 거기에 점수 $K$를 가중치 합쳐서 구한다.
\prod_K K*g(K)
이하에서는 $g(K)$를 어떻게 구하는가를 생각한다.
전부 칠했을 때의 가동 머신과 미가동 머신의 배열 방법을 생각하면, 미가동 머신은,
\prod_K K*g(K)
라고 하는 2개의 조건을 채운 상태로 되어 있다. 그러나, 반대로 2조건을 채워도, 다만 $K$개 가동했을 때에 전부 칠해진 것은 아니다. $K$개목을 가동하기 전에 전부 칠해져 있는 것이 있다. 여기서 공식 해설에서는 ($K$일 때의 값)-($K-1$일 때의 값)으로 하는 것으로 정확히 $K$개일 때의 값인 $g(K)$를 구해 하지만, 나는 생각하지 않았다.
자신이 생각한 것은, 직전인 $K-1$개 가동시의 상태. 그 시점에서는 전부 바르지 않고, 다음의 1개를 가동하면 전부 바르는 상태이다. 이것은 다음의 3가지이다:
(1) 끝 1개 미가동
좌우단의 머신은 어느 한쪽만 미가동. 끝 이외의 머신으로, 미가동한 것이 연속하는 것은 없다, 라고 하는 상태. 다음에 끝의 머신을 가동하면 전부 바른다.
(2) 2 연속 미가동
좌우단의 머신은 양쪽 가동. 미가동 머신 중 2개가 연속해, 다른 것은 연속하지 않는다, 라고 하는 상태. 다음에 2연속 미가동 머신의 어느 쪽인지를 가동하면 전부 바른다.
(3) 3 연속 미가동
(2)와 마찬가지로 미가동 머신이 2연속이 아니라 3연속의 것. 다음에 3연속의 중앙 머신을 가동하면 전부 바른다.
이후에는, 상기 (1)∼(3)에 해당하는 순열의 개수(각각 $g_1(K), $$g_2(K), $$g_3(K)$로 한다)를 세면 된다. $g_1(K)$~$g_3(K)$는 다음과 같이 계산할 수 있다. 이하, $K-1$개 가동시의 미가동 머신의 수를 $r=N-K$로 둔다.
g_1(K) = 2 * {}_{K-1}C_{r-1} * (K-1)! * 1 * (r-1)!
수식
의미
$2$
좌우 어느 쪽 끝이 가동되지 않습니까?
${}_{K-1}C_{r-1}$
가동 머신의 틈에 미가동 머신을 삽입하는 조합
$(K-1)!$
운영 기계 $K-1$개의 운영 순서
$1$
$K$번째로 가동하는 것은 끝의 머신 일택
$(r-1)!$
나머지 미가동 머신의 가동 순서
g_2(K) = {}_{K-2}C_{r-1} * (r-1) * (K-1)! * 2 * (r-1)!
수식
의미
${}_{K-2}C_{r-1}$
가동 머신의 틈에 미가동 머신을 삽입하는 조합(연속하는 2개는 정리해 1개라고 생각한다)
$r-1$
2개의 미가동 머신을 넣을 장소 선택
$(K-1)!$
운영 기계 $K-1$개의 운영 순서
$2$
$K$번째로 가동하는 것은 2 연속의 미가동 머신의 어느 쪽인가
$(r-1)!$
나머지 미가동 머신의 가동 순서
g_3(K) = {}_{K-2}C_{r-2} * (r-2) * (K-1)! * 1 * (r-1)!
수식
의미
${}_{K-2}C_{r-2}$
가동 머신의 틈에 미가동 머신을 삽입하는 조합(연속하는 3개는 정리해 1개라고 생각한다)
$r-2$
미가동 기계를 3개 넣을 장소 선택
$(K-1)!$
운영 기계 $K-1$개의 운영 순서
$1$
$K$번째로 가동하는 것은 3연속의 중앙 머신 일택
$(r-1)!$
나머지 미가동 머신의 가동 순서
이상에서 $g(K)=g_1(K)+g_2(K)+g_3(K)$로 $g(K)$가 구해져 답이 구해진다.
감상
경우 나누기의 「3연속 미가동」을 눈치채지 않고, 꽤 빠져 버렸습니다. 그래도 체감적으로는 다른 오렌지 diff보다 쉽게 느꼈습니다.
공식 해설의 「딱 K개=K개 이하-K-1개 이하」라고 하는 생각은 아마 중요하므로, 이것을 원활하게 끌어낼 수 없었던 곳은 반성점입니다.
Reference
이 문제에 관하여(해법 노트 AtCoder Grand Contest 023 C - Painting Machines), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hamamu/items/3cb8bd299ed6d34fae11
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(해법 노트 AtCoder Grand Contest 023 C - Painting Machines), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hamamu/items/3cb8bd299ed6d34fae11텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)