라미나 집합족
시간 제한2초메모리 제한512 MB
무방향 트리와 f개의 정점 집합이 주어지고 각 집합은 단순 경로일 때, 이 경로 집합들이 라미나르 가족인지 판정한다.
문제
조합 최적화를 공부하던 루카스는 라미나 집합족(laminar family)이라는 개념을 알게 되었다. 집합 의 부분집합족 가 라미나족이라는 것은, 가 공집합을 포함하지 않고 서로 다른 임의의 두 집합 에 대해 , , 중 하나가 성립한다는 뜻이다.
루카스는 새로 배운 내용을 곧바로 대회 문제로 바꾸는 사람이다. 주어진 구조가 어떤 조합적 성질을 만족하는지 판정하는 문제를 좋아하고, 좋은 문제에는 트리가 들어가야 한다고 믿는다. 그래서 두 가지를 한데 묶어 다음 문제를 만들었다.
정점이 개인 무향 트리와 집합족 가 주어진다. 는 트리에서 두 정점 와 를 잇는 단순 경로 위의 모든 정점으로 이루어진다. 즉 이고 모든 에 대해 이다. 이 집합족 가 라미나족인지 판정하라.
같은 집합이 여러 번 주어지기도 한다. 라미나 조건은 서로 다른 두 집합에만 걸리므로, 똑같은 집합이 반복되어도 조건은 깨지지 않는다.
입력
첫째 줄에 트리의 정점 수 과 집합족 의 원소 개수 가 주어진다 ().
다음 개 줄에는 트리의 간선이 주어진다. 번째 줄에는 번 간선이 잇는 두 정점 와 가 주어진다 (, ).
다음 개 줄에는 집합족을 이루는 집합이 주어진다. 번째 줄에는 두 정수 와 가 주어지며 (), 는 정점 와 를 잇는 단순 경로 위의 모든 정점으로 이루어진다. 양 끝점 와 도 포함한다.
출력
주어진 집합족이 라미나족이면 Yes를, 아니면 No를 한 줄에 출력한다.