Mạng xã hội có n người (đánh số 1..n) và m quan hệ bạn bè (đồ thị vô hướng, không cạnh tự thân). Hãy xác định mạng có chứa chu trình hay không, dùng cấu trúc DSU (Union-Find) với union-by-rank và path-compression.
Khi thêm cạnh (u,v): nếu find(u)=find(v) → đã có chu trình.
Ví dụ 4 đỉnh, cạnh 1−2,2−3,3−4,4−1 tạo chu trình → YES.
Dòng 1: n, m. m dòng tiếp, mỗi dòng hai số u,v.
1≤n≤105, 0≤m≤2⋅105, không có cạnh trùng nhau.
In YES nếu có chu trình, NO nếu không.
Ví dụ:
Đầu vào:
4 4
1 2
2 3
3 4
4 1
Đầu ra:
YES
Giải thích:
Đang tải editor...