Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Bạn được cho một đơn đồ thị vô hướng có ~n~ đỉnh - được đánh số từ ~1~ tới ~n~, và ~m~ cạnh.
Yêu cầu: In ra một đồ thị con của đồ thị đã cho sao cho:
- Mọi đỉnh của đồ thị con này có bậc là lẻ.
- Hoặc xác định không tồn tại đồ thị con thỏa mãn yêu cầu.
- Trong bài tập này, đồ thị ~A = (V_A, E_A)~ là đồ thị con của đồ thị ~B = (V_B, E_B)~ nếu và chỉ nếu ~V_A = V_B~ và ~E_A \subseteq E_B~. Nếu có nhiều đáp án, in đáp án bất kỳ.
Input
- Dòng đầu chứa số nguyên dương ~t~ là số bộ test (~t \leq 20~).
- ~t~ nhóm dòng sau, mỗi nhóm dòng có định dạng:
- Dòng đầu chứa 2 số nguyên dương ~n, m\ (1 \leq n, m \leq 4 \times 10^5)~.
- ~m~ dòng tiếp theo, mỗi dòng chứa 2 số nguyên dương ~u,v~ biểu diễn ~1~ cạnh vô hướng ~(u, v)\ \newline (1 \leq u, v \leq n)~. Đảm bảo đơn đồ thị.
Đảm bảo tổng giá trị của ~n,m~ qua tất cả ~t~ bộ test không vượt quá ~4 \times 10^5~.
Output
- Nếu không tồn tại, xuất 1 dòng duy nhất in
NO
. - Nếu tồn tại, dòng đầu in
YES
. Dòng tiếp in ~k\ (0 \leq k \leq m)~ là số lượng cạnh của đồ thị con. ~k~ dòng tiếp theo mỗi dòng in 2 số "~u\ v~" là cạnh của đồ thị con này.
Sample
Sample Input 1
2
3 2
1 2
2 3
6 5
2 3
1 5
4 6
2 6
4 2
Sample Output 1
NO
YES
3
1 5
3 2
4 6
Bình luận