아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

모든 것을 뒤집기

시간 제한1초메모리 제한1024 MB

요약
완전 그래프에서 도시 부분집합을 뒤집었을 때 활성 철도가 전체 도시를 잇는 트리가 되는 경우의 수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
수학, 트리, 조합론
정답자
아직 제출이 없습니다

문제

논로니아 정부는 철도 체계의 비효율 때문에 걱정이 많다. 모든 도시 쌍은 철도 한 개로 연결되어 있지만, 예산 문제로 일부 철도는 비활성 상태이다.

이상적인 철도 구성이란, 모든 도시 쌍에 대해 활성 철도만 이용해서 두 도시를 잇는 경로가 정확히 하나 존재하는 구성이다.

당신은 논로니아어를 못 하고 철도의 활성 상태를 직접 바꿀 수도 없다. 철도를 켜거나 끌 수 있는 것은 각 도시의 리더뿐이며, 리더들은 모두 논로니아어만 한다. 정부는 당신에게 철도 체계를 이상적인 구성으로 바꾸라고 고용했다.

논로니아어를 할 줄 아는 친구가 문구 하나를 알려 주었다. lupDujHomwIj luteb gharghmey이다. 이 문구를 도시의 리더에게 말하면, 그 도시에 연결된 모든 철도의 상태가 뒤집힌다. 비활성이던 철도는 활성이 되고, 활성이던 철도는 비활성이 된다.

그림 3: 도시 1과 2에 lupDujHomwIj luteb gharghmey 문구를 적용한 결과

문구는 리더 여러 명에게 각각 한 번씩 말할 수 있다. 리더 집합을 골라 그 리더들에게만 한 번씩 연락했을 때 이상적인 구성이 되면, 그 집합을 좋은 집합이라고 한다. 좋은 집합의 개수를 세라. 두 집합은 한쪽에만 속한 리더가 하나라도 있으면 서로 다르다.

답은 109+710^9 + 7로 나눈 나머지로 출력한다.

입력

첫 줄에 도시의 수 NN과 처음에 활성 상태인 철도의 수 MM이 주어진다 (1≤N≤1001 \le N \le 100, 0≤M≤N×(N−1)20 \le M \le \frac{N \times (N-1)}{2}).

이어서 MM개의 줄에 정수 uu, vv가 주어진다 (1≤u<v≤N1 \le u < v \le N). 이는 처음에 활성 상태인 철도가 도시 uu와 vv를 잇는다는 뜻이다. 같은 도시 쌍이 두 번 나오지 않는다.

출력

주어진 초기 구성에 대해 좋은 집합의 개수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

예제5

  1. 예제 1

    입력
    5 6
    1 2
    1 3
    2 4
    3 4
    3 5
    4 5
    
    예상 출력
    8
    
  2. 예제 2

    입력
    3 2
    1 2
    2 3
    
    예상 출력
    6
    
  3. 예제 3

    입력
    4 4
    1 2
    2 3
    3 4
    1 3
    
    예상 출력
    4
    
  4. 예제 4

    입력
    3 1
    1 2
    
    예상 출력
    0
    
  5. 예제 5

    입력
    2 0
    
    예상 출력
    2