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

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

단순 사이클 세기

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

요약
정점 n개, 간선이 많아야 n+15개인 연결 무방향 그래프가 주어질 때, 모든 정점의 차수가 2인 연결 부분 그래프인 단순 사이클의 개수를 센다.
난이도

어려움10점 중 9점

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

문제

무방향 그래프가 주어진다. 이 그래프에 들어 있는 단순 사이클의 개수를 구하라. 여기서 단순 사이클은 모든 정점의 차수가 정확히 2인 연결된 부분그래프를 뜻한다.

입력

입력은 다음 형식의 테스트 케이스 하나로 이루어진다.

n m
u_1 v_1
...
u_m v_m

테스트 케이스는 무방향 그래프 GG를 나타낸다.

첫 줄에 정점의 개수 nn (3≤n≤1000003 \le n \le 100000)과 간선의 개수 mm (n−1≤m≤n+15n - 1 \le m \le n + 15)이 주어진다. 정점 번호는 1번부터 nn번까지다.

이어지는 mm개의 줄에 간선이 하나씩 주어진다. ii번째 줄의 두 정수 uiu_i와 viv_i는 정점 uiu_i와 정점 viv_i를 잇는 간선이 있다는 뜻이다. 항상 ui<viu_i < v_i이므로 자기 자신을 잇는 간선은 없다.

i≠ji \ne j인 모든 쌍에서 ui≠uju_i \ne u_j 또는 vi≠vjv_i \ne v_j가 성립하므로 같은 두 정점을 잇는 간선이 두 개 이상 있는 경우도 없다.

GG는 연결 그래프라고 가정해도 된다.

출력

그래프에 들어 있는 단순 사이클의 개수를 한 줄에 출력한다.

예제3

  1. 예제 1

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

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

    입력
    4 6
    1 2
    1 3
    1 4
    2 3
    2 4
    3 4
    
    예상 출력
    7