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

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

이분 그래프 색칠

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

요약
이분 그래프의 모든 2^n가지 흑백 색칠에 대해, 각 간선의 양 끝점 색에 따라 정해지는 가중치들의 곱을 모두 더해 10^9+7로 나눈 나머지를 구한다.
난이도

어려움10점 중 8점

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

문제

Bobo는 nn개의 정점을 가진 이분 그래프를 하나 받는다. 즉, 홀수 길이의 사이클이 없는 그래프이다.

각 정점을 검은색 또는 흰색으로 색칠한 뒤, 모든 간선의 값의 곱을 계산한다. 간선의 값은 양 끝 정점의 색에 따라 결정되므로, 하나의 간선에 대해 서로 다른 값이 2×2=42 \times 2 = 4가지 있을 수 있다.

이제 Bobo는 가능한 2n2^n가지 색칠 각각에 대해 그 곱을 모두 더한 값을 (109+7)(10^9+7)로 나눈 나머지를 알고 싶어 한다.

입력

첫째 줄에 정점의 수와 간선의 수를 나타내는 정수 n,mn, m이 주어진다 (2≤n≤402 \leq n \leq 40, 1≤m≤1001 \leq m \leq 100).

정점은 편의상 1,2,…,n1, 2, \dots, n으로 번호가 매겨진다.

다음 mm개의 줄 각각에는 66개의 정수 ai,bi,vi,00,vi,01,vi,10,vi,11a_i, b_i, v_{i, 00}, v_{i, 01}, v_{i, 10}, v_{i, 11}이 주어지며, 이는 정점 aia_i와 bib_i를 잇는 간선을 나타낸다 (1≤ai,bi≤n1 \leq a_i, b_i \leq n, 0≤vi,00,vi,01,vi,10,vi,11≤1090 \leq v_{i, 00}, v_{i, 01}, v_{i, 10}, v_{i, 11} \leq 10^9).

  • 정점 aia_i와 bib_i가 모두 흰색이면 ii번째 간선의 값은 vi,00v_{i, 00}이다.
  • 정점 aia_i가 흰색이고 bib_i가 검은색이면 값은 vi,01v_{i, 01}이다.
  • 정점 aia_i가 검은색이고 bib_i가 흰색이면 값은 vi,10v_{i, 10}이다.
  • 정점 aia_i와 bib_i가 모두 검은색이면 값은 vi,11v_{i, 11}이다.

출력

합을 나타내는 정수 하나를 출력한다.

예제2

  1. 예제 1

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

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