해설
색 집합 에 대하여, 에 속한 색 중 적어도 하나로 칠할 수 있는 간선들의 집합을 라 하자. 즉 이다. 또한 를 의 간선만 사용하여 만들 수 있는 forest의 최대 간선 수, 즉 안에서 사이클 없이 택할 수 있는 간선 수의 최댓값이라 하자.
는 DSU로 계산할 수 있다. 처음에는 모든 정점을 서로 다른 component에 둔다. 간선을 하나씩 보면서, 그 간선이 에 속한 색 중 하나라도로 칠할 수 있으면(즉 이면) 양 끝점을 합친다. 이때 실제로 서로 다른 두 component가 합쳐진 횟수가 이다. 색이 7개뿐이므로 비어 있지 않은 색 집합은 개이며, 따라서 모든 에 대하여 를 미리 계산해 둘 수 있다.
판정 조건
spanning tree는 항상 정확히 개의 간선을 가지므로, 먼저 이어야 한다. 이 조건이 성립하지 않으면 답은 No이다. 이 조건이 성립한다고 할 때, 답이 Yes이기 위한 필요충분조건은 모든 색 집합 에 대하여
가 성립하는 것이다.
이 조건의 필요성은 다음과 같이 확인된다. 색 집합 에 속한 색으로 칠해야 하는 간선은 총 개이다. 그런데 색이 에 속하도록 칠해진 간선은 모두 에 속해야 하고, spanning tree의 부분집합이므로 그들끼리도 사이클을 이룰 수 없다. 따라서 그 개수는 안의 forest 최대 크기인 를 넘을 수 없다. 즉 를 만족하는 색 집합 가 존재하면 답은 No이다.
이제 이 조건이 충분함을 보인다.
증명 1. Real Stable Polynomial
이면 칠할 수 있는 간선만으로는 spanning tree를 만들 수 없으므로 답은 항상 No이며, 이 경우 판정 조건 또한 에서 실패한다. 따라서 이제 이라고 가정한다. 또한 칠할 수 있는 색이 존재하지 않는 간선()은 어떤 해에도 사용될 수 없으므로 미리 제거하여도 무방하다.
각 간선 의 색 집합 를 이용하여 다음 다항식을 정의한다.
여기서 합은 그래프의 모든 spanning tree 에 대하여 취한다. 단항식 를 생성하는 방법은, spanning tree 를 하나 택한 뒤 각 간선 마다 에 속한 색 하나를 골라(즉 에서 한 항을 택하여) 색 가 정확히 번 등장하도록 하는 것과 일대일로 대응한다. 따라서 질의의 답이 Yes인 것은 이 단항식의 계수가 양수인 것과 동치이다.
Definition 1.1. Newton Polytope
다변수 다항식 를 단항식들의 합으로 나타낼 때, 계수가 이 아닌 단항식들의 지수 벡터 집합을 라 한다. 단항식 의 지수 벡터는 이다. 의 Newton polytope은 의 convex hull, 즉
이다.
먼저 임을 보인다. 실제로 만들 수 있는 색 개수 벡터 는 을 만족하며, 모든 에 대하여 를 만족한다(앞의 필요성 논증과 동일한 이유이다). 따라서 는 다음 polytope에 포함된다.
이제 역으로 임을 보인다. 두 polytope이 모든 선형 목적함수에 대하여 동일한 최댓값을 가지면 서로 일치하므로, 이를 확인하는 것으로 충분하다. 실수 가중치 을 고정하고 를 최대화하는 경우를 생각한다. 색을 이 되도록 정렬하고 로 둔다.
간선 가 선택되었을 때 그 간선이 줄 수 있는 최대 기여도는 이며, 이는 다음과 같이 다시 쓸 수 있다.
여기서 은 괄호 안의 명제가 참이면 , 거짓이면 이다. ( 안에서 -순서가 가장 빠른 색이 이면 위 합은 에서만 이 되어, telescoping에 의하여 가 된다.)
이는 간선의 기여도가 중첩된 집합열 중 그 간선이 어디까지 속하는지에 의해서만 결정됨을 뜻한다. Kruskal 알고리즘으로 높은 단계의 간선을 먼저 최대한 택하면, 의 최댓값은
가 된다. 어떤 spanning tree도 에서 개를 초과하여 가질 수 없으므로 이 값은 상한이며, Kruskal 알고리즘이 그 상한을 달성한다.
Definition 1.2. Submodular 함수와 base polymatroid
집합 함수 가 모든 에 대하여 를 만족하면 증가 함수라 하고, 모든 에 대하여
를 만족하면 submodular 함수라 한다. 인 증가 submodular 함수 에 대하여
를 base polymatroid라 한다. 여기서 이다.
Lemma 1.3. Submodular greedy
가 인 증가 submodular 함수라 하자. 가중치를 로 정렬하고 라 하면, base polymatroid 위에서 의 최댓값은
이다.
임의의 에 대하여
이고, 이며 이므로 위 값은 주어진 식 이하이다. 이제 이 상한이 달성됨을 보인다. 로 두고 로 정의하면, 증가성에 의하여 이고 telescoping에 의하여 이다. 남은 것은 모든 에 대하여 임을 보이는 것이다. 라 하자. 이면 이다. 이면 이므로 submodular 함수의 diminishing return 성질에 의하여 , 즉 이다. 이를 에 대하여 모두 더하면 를 얻는다. 따라서 이 는 에 속하며 위 상한을 달성한다.
이제 가 증가 submodular 함수임을 보인다. 증가성은 명백하다. Submodularity는 다음으로부터 따라온다. matroid의 rank 함수 는 간선 집합에 대하여 submodular이고, , 이므로
이다. 따라서 Lemma 1.3을 , 에 적용하면 위에서의 선형 목적함수 최댓값 또한 앞에서 구한 값과 정확히 일치한다. 모든 선형 목적함수에 대하여 두 polytope의 최댓값이 일치하므로
이다.
Definition 1.4. Real Stable Polynomial
복소수 의 허수부를 라 하고, 열린 위쪽 반평면을 인 복소수들의 집합이라 하자. 실계수 다항식 가 real stable이라는 것은, 모든 에 대하여 일 때 항상 임을 뜻한다.
Theorem 1.5. Matrix-Tree Theorem
그래프의 각 간선 에 변수 를 대응시킨다. 각 간선에 임의로 방향을 부여하고 incidence matrix에서 한 행을 제거한 것을 reduced incidence matrix 라 하면, weighted reduced Laplacian은 이고
이다. 합은 모든 spanning tree 에 대하여 취한다.
Lemma 1.6. Spanning tree polynomial은 real stable이다
연결 그래프 의 spanning tree polynomial을
라 하면, 는 real stable이다.
Theorem 1.5에 의하여 이다. 모든 가 를 만족한다고 하자. 만약 가 특이행렬이면 어떤 에 대하여 이다. 로 두면 이 값은 이며, 그 허수부는
이다. 연결 그래프에서 는 full row rank이므로 이면 이고, 어떤 에 대하여 이다. 모든 이므로 위 허수부는 양수가 되어 가정에 모순이다. 따라서 이며, 는 real stable이다.
Lemma 1.7. 음이 아닌 선형 대입은 real stability를 보존한다
이 real stable이고, 각 에 대하여 가 음이 아닌 계수를 가지며 적어도 하나의 계수는 양수라고 하자. 그러면 또한 real stable이다.
모든 가 위쪽 반평면에 있으면 이므로 각 또한 위쪽 반평면에 있다. 가 real stable이므로 이때 이다. 따라서 또한 real stable이다.
Lemma 1.6에 의하여 는 real stable이며, 각 에 를 대입하여도 Lemma 1.7에 의하여 real stability가 보존된다. 따라서 는 real stable이며, 의 모든 단항식은 차수가 모두 이다.
Lemma 1.8. Saturated Newton Polytope
가 real stable이고 의 모든 단항식의 차수가 같으면
이다.
Brändén의 정리에 의하여 real stable 다항식의 support는 jump system이다. 모든 support 벡터의 좌표합이 같으면 이 jump system은 -convex set이 되며, 다음 교환 성질을 갖는다. 이고 어떤 좌표 에 대하여 이면, 어떤 좌표 에 대하여 이고 이다. 이 성질을 반복하면 의 convex hull 안의 모든 정수점이 다시 support에 속함을 보일 수 있다. 따라서 이다.
Lemma 1.8에 의하여 의 support는 안의 정수점 전체를 포함한다. 따라서 과 모든 에 대한 를 만족하는 정수 벡터 는 에 속하는 정수점이며, 단항식 의 계수가 양수이다. 따라서 조건을 만족하는 spanning tree와 색 배정이 존재한다.
증명 2. Rado's Theorem
간선 집합 위의 독립성을 "사이클을 이루지 않음"으로 정의하면, 독립 집합은 forest이며 그 rank는 해당 간선 집합 내 forest의 최대 크기이다. 이는 곧 graph matroid이다.
Theorem 2.1. Rado's Theorem
matroid 의 ground set을 , rank 함수를 라 하고, 집합 가 주어졌다고 하자. 각 마다 를 택하여 이 모두 서로 다르고 이 에서 독립이 되도록 할 수 있을 필요충분조건은 모든 에 대하여
가 성립하는 것이다.
색 로 칠할 수 있는 간선들의 집합을 라 하자(즉 ). 각 색 마다 정확히 개의 간선을 선택하되, 선택된 간선들은 전체적으로 서로 다르고 사이클을 이루지 않아야 한다.
각 색 에 대하여 "에서 간선 하나를 선택한다"는 요구사항을 개 생성한다. Theorem 2.1을 적용하면, 모든 요구사항을 서로 다른 간선으로 만족하면서 전체가 독립(forest)이 되도록 할 수 있을 필요충분조건은, 요구사항들의 임의의 부분집합에 대하여 해당 요구사항들이 선택할 수 있는 간선들의 합집합의 rank가 요구사항의 개수 이상인 것이다.
요구사항들의 부분집합 하나를 택하고, 거기에 등장하는 색들의 집합을 라 하자. 해당 요구사항들이 선택할 수 있는 간선들의 합집합은 이고 그 rank는 이다. 주어진 색 집합 에 대하여 가장 강한 제약은 에 속한 색의 요구사항을 모두 포함하는 경우에 발생하며, 이때 요구사항의 개수는 이다. 따라서 Theorem 2.1의 조건은 정확히 "모든 에 대하여 "와 동치이다.
이 조건이 성립하면 각 색 에서 정확히 개의 간선을 선택하여 전체가 forest가 되도록 할 수 있다. 이므로 선택된 간선은 총 개이고, 정점이 개인 그래프에서 개의 간선을 갖는 forest는 연결되어 있어야 하므로 spanning tree이다. 따라서 조건을 만족하는 spanning tree와 색 배정이 존재한다.
구현과 시간복잡도
정리하면, 한 질의의 답이 Yes이기 위한 필요충분조건은 두 가지이다. 첫째, 이어야 한다. 둘째, 모든 색 집합 에 대하여 이어야 한다.
따라서 각 질의마다 먼저 합이 인지 확인하고, 그렇지 않으면 No를 출력한다. 이후 개의 색 집합을 모두 검사하여, 하나라도 위배되면 No를, 모두 만족하면 Yes를 출력한다.
는 bitmask DP로 한 번에 구할 수 있다. 색 를 비트 에 대응시키고, 에서 임의의 색 하나를 제거하면 이므로, 질의 하나당 에 모든 에 대한 를 구할 수 있다.
전체 시간복잡도는 이다. 첫 번째 항은 개의 색 집합 각각에 대하여 DSU로 를 전처리하는 비용이며, 두 번째 항은 각 질의에서 모든 색 집합을 검사하는 비용이다.
Solution by Claude Opus 4.8