Hơi hướng của một bài Minimum Spanning Tree - Cây khung nhỏ nhất.
Rõ ràng cần tìm ra cây khung nhỏ nhất trong đồ thị, tuy nhiên số cạnh là quá lớn trong trường hợp này, N^3
cạnh, do là đồ thị đầy đủ.
Tuy nhiên dựa trên yếu tố min{ |xA - xB|, |yA - yB|, |zA - zB| }
, ta có thể giới hạn số cạnh của bài toán lại còn 3N
cạnh, tức chỉ chọn ra 3N
cạnh nhỏ nhất được chọn theo 3 trục của hệ tọa độ. Cụ thể trên mỗi trục tọa độ, ta chỉ chọn các cạnh nối các điểm liền kề nhau (theo trục đang xét), vì những cạnh còn lại sẽ không tạo được cây khung tối ưu.
Lấy ví dụ trong hệ tọa độ 2 chiều như hình phía dưới.
Xét trên trục X
, 3 điểm A
, B
, C
lần lượt theo thứ tự từ trái sang phải. Nhận thấy cạnh AC
là cạnh không được chọn trong cây khung sau cùng.
Do đó bài toán đưa về giải quyết cây khung nhỏ nhất trên tập 3N
cạnh, giải quyết bằng DSU (hay Kruskal)