홀수 차수
시간 제한1초메모리 제한128 MB
무방향 그래프에서 남긴 변이 모든 정점에서 홀수 차수를 이루도록 하는 변 부분집합의 개수를 1e9+7로 나눈 나머지로 구한다.
문제
어떤 공화국에 개의 마을()이 있고, 이 마을들은 개의 무방향 도로()로 연결되어 있습니다. 번째 도로는 서로 다른 두 마을 와 를 잇습니다(, , ). 같은 두 마을을 잇는 도로가 중복해서 존재하지는 않습니다. 공화국이 반드시 연결되어 있는 것은 아니며, 서로 오갈 수 없는 마을 쌍이 있을 수도 있습니다.
침략자들이 남아 있는 모든 도로를 조사하려 하므로, 마을들은 일부 도로를 폐쇄하려 합니다. 목표는 모든 마을이 남은 도로 중 홀수 개의 끝점이 되도록 만드는 것입니다.
모든 마을이 홀수 개의 남은 도로에 연결되도록 남겨 둘 수 있는 도로 부분집합이 몇 가지인지 세십시오. 이 값이 매우 클 수 있으므로 로 나눈 나머지를 출력합니다. 그런 부분집합이 존재하지 않으면 개수는 입니다.
예를 들어 아래 공화국을 생각해 봅시다.
1---2
\ /
3---4
여기서는 정확히 두 개의 부분집합이 조건을 만족합니다. 하나는 도로 1–3, 2–3, 3–4를 남기고 1–2를 폐쇄하는 것입니다. 이때 마을 1, 2, 4는 각각 도로 하나에, 마을 3은 세 개의 도로에 연결됩니다. 다른 하나는 1–2와 3–4를 남기는 것입니다. 따라서 이 공화국의 답은 입니다.
입력
- 첫째 줄: 공백으로 구분된 두 정수 과 .
- 둘째 줄부터 번째 줄까지: 번째 줄에는 번째 도로를 나타내는 두 정수 와 가 공백으로 구분되어 주어집니다.
출력
- 정수 하나: 모든 마을이 홀수 개의 도로에 연결되도록 남겨 둘 수 있는 도로 부분집합의 개수를 로 나눈 나머지. 그런 부분집합이 없으면 을 출력합니다.