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

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

Everlasting -One-

시간 제한8초메모리 제한512 MB

요약
특수 쌍으로 연결된 속성을 공유하고 서로 겹치지 않는 집합 사이의 전직으로 나뉘는 2^N가지 명암 집합의 그룹 수를 1e9+7로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

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

문제

Everlasting -One-은 올해 출시된 온라인 게임이다. 조작할 수 있는 캐릭터가 많아서 빠르게 인기를 얻었다.

캐릭터는 속성으로 결정된다. 이 게임에는 11번부터 NN번까지 번호가 붙은 속성이 NN개 있고, 각 속성의 상태는 빛과 어둠 중 하나다. 따라서 캐릭터는 모두 2N2^N가지다.

캐릭터를 바꾸는 방법은 전직뿐이며, 전직은 원하는 만큼 여러 번 할 수 있다.

캐릭터 AA에서 캐릭터 BB로 전직할 수 있는 조건은 다음 네 조건을 모두 만족하는 속성 aa와 bb가 존재하는 것이다.

  • 캐릭터 AA에서 속성 aa의 상태가 빛이다.
  • 캐릭터 BB에서 속성 bb의 상태가 빛이다.
  • AA와 BB에서 동시에 빛인 속성 cc는 존재하지 않는다.
  • 순서쌍 (a,b)(a, b)가 호환된다.

순서쌍 (a,b)(a, b)가 호환된다는 말은 다음 세 조건을 만족하는 속성 수열 c1,c2,…,cnc_1, c_2, \ldots, c_n이 존재한다는 뜻이다.

  • c1=ac_1 = a이다.
  • cn=bc_n = b이다.
  • 모든 i=1,2,…,n−1i = 1, 2, \ldots, n-1에 대해 (ci,ci+1)(c_i, c_{i+1}) 또는 (ci+1,ci)(c_{i+1}, c_i)가 특별한 순서쌍이다.

특별한 순서쌍의 목록은 입력으로 주어진다.

전직을 아무리 반복해도 캐릭터 AA를 캐릭터 BB로 바꿀 수 없으면 두 캐릭터는 본질적으로 다르다고 한다. 전직으로 서로 바꿀 수 있는 캐릭터를 같은 그룹으로 묶을 때, 2N2^N가지 캐릭터가 몇 개의 그룹으로 나뉘는지 구하라. 답이 매우 클 수 있으므로 109+710^9 + 7로 나눈 나머지를 출력한다.

입력

입력은 여러 개의 데이터 세트로 이루어진다. 데이터 세트는 최대 5050개이고, 입력 전체의 크기는 5 MB 미만이다.

각 데이터 세트의 형식은 다음과 같다.

N M
a1 b1
:
aM bM

각 데이터 세트의 첫 줄에는 두 정수 NN과 MM이 주어진다 (1≤N≤1051 \le N \le 10^5, 0≤M≤1050 \le M \le 10^5). 이어지는 MM개의 줄 중 ii번째 줄에는 ii번째 특별한 순서쌍을 나타내는 두 정수 aia_i와 bib_i가 주어진다 (1≤ai<bi≤N1 \le a_i < b_i \le N). 같은 순서쌍이 두 번 주어지는 경우는 없다. 즉 i≠ji \ne j이면 (ai,bi)≠(aj,bj)(a_i, b_i) \ne (a_j, b_j)이다.

입력의 마지막 줄에는 00이 두 개 주어진다. 이 줄은 데이터 세트가 아니다.

출력

각 데이터 세트마다 본질적으로 다른 캐릭터의 개수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.

예제2

  1. 예제 1

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

    입력
    1 0
    2 1
    1 2
    4 2
    1 2
    3 4
    0 0
    
    예상 출력
    2
    3
    5