만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

신장 트리의 차수

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

요약
연결된 그래프에서 모든 정점의 차수가 n/2 이하인 신장 트리를 찾거나, 그런 트리가 없다고 보고합니다.
난이도

보통10점 중 7점

유형
그래프, 트리, DFS
정답자
아직 제출이 없습니다

문제

연결된 무방향 그래프가 주어진다. 정점은 nn개, 간선은 mm개이다. 모든 정점의 차수가 n2\frac{n}{2} 이하인 신장 트리를 하나 찾아라.

정점의 차수는 그 정점에 연결된 간선의 개수이다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 다음과 같다.

첫 줄에 정점의 수 nn과 간선의 수 mm이 주어진다 (2≤n≤1052 \le n \le 10^5, n−1≤m≤2×105n-1 \le m \le 2 \times 10^5).

이후 mm개의 줄에 정수 uiu_i와 viv_i가 주어진다 (1≤ui,vi≤n1 \le u_i, v_i \le n). 이는 정점 uiu_i와 정점 viv_i를 잇는 간선이 있다는 뜻이다. 자기 루프와 다중 간선이 있을 수 있다.

그래프는 연결되어 있다. 모든 테스트 케이스의 nn 합은 5×1055 \times 10^5을 넘지 않고, mm 합은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다 조건을 만족하는 신장 트리가 존재하면 한 줄에 "Yes"를 출력한다. 이어서 n−1n-1개의 줄에 정수 pip_i와 qiq_i를 공백으로 구분하여 출력한다. 이는 트리에 정점 pip_i와 정점 qiq_i를 잇는 간선이 포함된다는 뜻이다.

조건을 만족하는 신장 트리가 없으면 한 줄에 "No"를 출력한다.

힌트

첫 번째 예제에서 신장 트리의 최대 차수는 3이다 (정점 1과 정점 4의 차수가 모두 3이다). 3≤623 \le \frac{6}{2}이므로 유효한 답이다.

두 번째 예제에서는 어떤 신장 트리를 골라도 차수가 2인 정점이 생긴다. 2>322 > \frac{3}{2}이므로 유효한 답이 없다.

예제1

  1. 예제 1

    입력
    2
    6 9
    1 2
    1 3
    1 4
    2 3
    2 4
    3 4
    4 5
    4 6
    4 6
    3 4
    1 3
    2 3
    3 3
    1 2
    
    예상 출력
    Yes
    1 2
    1 3
    1 4
    4 5
    4 6
    No