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

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

그래프의 세제곱

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

요약
연결 그래프에서 바깥 간선이 모두 자명하지 않은 다리인 정점과 쌍과 삼각형 개수를 셉니다.
난이도

보통10점 중 6점

유형
그래프, DFS, 완전 탐색
정답자
아직 제출이 없습니다

문제

그래프 G=(V,E)G = (V, E)의 세제곱 G3G^3은 정점 집합 VV 위에서 정의되는 그래프로, 두 정점 사이의 GG에서의 거리가 3 이하일 때 두 정점을 간선으로 잇는다. 두 정점 사이의 거리는 두 정점을 잇는 최단 경로에 포함된 간선의 수이다.

다리(절단 간선)는 그 간선을 제거하면 연결 요소의 수가 늘어나는 간선이다. 동치로, 어떤 간선이 다리인 것은 그 간선이 어떤 사이클에도 포함되지 않는 것과 같다. 정점의 차수는 그 정점에 인접한 간선의 수이며, 두 끝점 중 어느 쪽도 차수가 1이 아닌 다리를 자명하지 않은 다리라고 한다.

이를 바탕으로 세 가지 개념을 정의한다.

  • 어떤 정점에 인접한 모든 간선이 자명하지 않은 다리이면, 그 정점을 순수 다리 정점이라고 한다.
  • 서로 다르고 서로 인접하며 각각 차수가 3 이상인 세 정점에 대해, 이 세 정점 중 정확히 하나에만 인접한 GG의 모든 간선이 자명하지 않은 다리이면, 이 세 정점을 순수 다리 삼각형이라고 한다.
  • 인접한 두 정점이 모두 순수 다리 정점이면, 이 두 정점을 순수 다리 쌍이라고 한다.

그림 1. 자명하지 않은 다리 7개를 점선으로 나타낸 연결 그래프. 순수 다리 정점은 7, 8, 15의 세 개, 순수 다리 삼각형은 {9,10,14}\{9, 10, 14\} 하나, 순수 다리 쌍은 {7,8}\{7, 8\} 하나가 있다.

임의의 연결 그래프의 세제곱은 해밀턴 연결이라는 사실이 알려져 있다. 즉 G3G^3의 임의의 두 정점은 해밀턴 경로로 이어진다.

연결 그래프가 주어질 때, 그 그래프의 순수 다리 정점, 순수 다리 삼각형, 순수 다리 쌍의 개수를 각각 구하여라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 두 정수 nn과 mm이 주어지며, 각각 그래프 GG의 정점 수와 간선 수이다. 여기서 n≤3000n \le 3000, m≤1,000,000m \le 1{,}000{,}000이다. 이어지는 mm개의 줄에는 각각 두 정수 uu와 vv가 주어지며, 이는 정점 uu와 vv를 잇는 간선을 뜻한다. 그래프는 연결되어 있으며 정점 집합은 {1,2,…,n}\{1, 2, \dots, n\}이다.

출력

각 테스트 케이스마다 한 줄에 세 정수를 하나의 공백으로 구분하여 출력한다. 순서대로 순수 다리 정점의 수, 순수 다리 삼각형의 수, 순수 다리 쌍의 수이다.

예제5

  1. 예제 1

    입력
    2
    5 4
    2 3
    1 2
    3 4
    5 4
    17 20
    1 2
    2 3
    3 4
    4 1
    2 4
    4 7
    5 6
    6 7
    7 8
    8 9
    9 10
    10 14
    14 9
    10 11
    11 12
    12 13
    13 11
    14 15
    15 16
    16 17
    
    예상 출력
    1 0 0
    3 1 1
    
  2. 예제 2

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

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

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

    입력
    1
    14 15
    1 2
    2 3
    3 1
    4 5
    5 6
    6 4
    3 4
    1 7
    2 8
    5 9
    6 10
    7 11
    8 12
    9 13
    10 14
    
    예상 출력
    0 2 0