KRUSKAL

Cho một đồ thị vô hướng, liên thông gồm n đỉnh và m cạnh. Mỗi cạnh nối hai đỉnh u, v có trọng số w.

Hãy tìm cây khung cực tiểu của đồ thị, tức là tập hợp n−1 cạnh sao cho:

  • Tất cả các đỉnh đều được nối với nhau
  • Không có chu trình
  • Tổng trọng số là nhỏ nhất

Dữ liệu vào: test.inp

  • Dòng 1: hai số nguyên n, m
    (1 ≤ n ≤ 10^5, 1 ≤ m ≤ 10^5)
  • m dòng tiếp theo, mỗi dòng gồm 3 số nguyên: u, v, w (biểu thị cạnh nối từ u đến v với trọng số w)

Dữ liệu ra: test.out: Ghi n dòng

  • dòng đầu tiên là trọng số của cây
  • n-1 dòng còn lại: mỗi dòng gồm 2 số nguyên ui, vi là một cạnh nối 2 đỉnh ui và vi thuộc cây khung cực tiểu. 

Chú ý:

  • các cạnh có thể in theo bất kỳ thứ tự nào. 
  • Nếu đồ thị không liên thông → không tồn tại cây khung thì ghi: NO
  • Nếu có nhiều cây khung cực tiểu → in ra 1 cây bất kì

# test.inp test.out
1

CODE
KRUSKAL

Hoàng Công Bình
10/04/2026 10:28:44
12/13 AC
Vạn Lý Độc Hành
09/04/2026 09:57:27
11/11 AC

Sau 3 lần nộp không AC thì sẽ có gợi ý.
Sau 3 lần nộp không AC thì sẽ có gợi ý.