Ryser만큼 빠르게
시간 제한4초메모리 제한512 MB
정점이 최대 36개인 그래프에서 서로 정점을 공유하지 않는 간선 집합 S마다 c의 |S|제곱을 구하고, 그 합을 10^9+7로 나눈 나머지를 구합니다.
문제
Counting Perfect Matchings as Fast as Ryser 논문을 읽고 일반 그래프에서 완전 매칭의 개수를 시간에 세는 방법을 배웠다. 이 문제는 사람들이 그 논문을 읽고 새로운 기법을 익히도록 하려고 출제했다.
정점이 개, 간선이 개인 무방향 그래프와 상수 가 주어진다. 간선 집합 의 가중치를 다음과 같이 정의한다.
- 집합 에 정점을 공유하는 간선 쌍이 있으면 가중치는 0이다.
- 그렇지 않으면 가중치는 이다. 공집합의 가중치는 1이다.
간선의 모든 부분집합에 대해 가중치의 합을 구하라. 답이 클 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫째 줄에 정수 , , 가 주어진다 (, , ). 이어지는 개의 줄에는 무방향 간선 를 나타내는 정수 , 가 한 줄에 하나씩 주어진다 (, ). 모든 간선은 서로 다르다.
출력
답을 나타내는 정수 하나를 출력한다.