Đồ thị sắp xếp nổi bọt
Đề bài
Mô tả
Cho một hoán vị của .
Ta xây dựng một đồ thị vô hướng gồm đỉnh (đánh số đến ) và ban đầu không có cạnh nào, bằng cách chạy thuật toán sắp xếp nổi bọt trên dãy :
lặp lại
swapped = false
với i = 1 đến n - 1:
nếu a[i] > a[i + 1]:
thêm cạnh vô hướng giữa hai đỉnh a[i] và a[i + 1]
đổi chỗ a[i] và a[i + 1]
swapped = true
cho đến khi swapped = false
Một tập độc lập của là một tập các đỉnh mà không có hai đỉnh nào trong tập được nối bởi một cạnh. Hãy tìm kích thước của tập độc lập lớn nhất của .
Dữ liệu vào
- Dòng đầu chứa số nguyên .
- Dòng thứ hai chứa số nguyên đôi một phân biệt .
Dữ liệu ra
Một số nguyên duy nhất: kích thước tập độc lập lớn nhất của .
Ràng buộc
- , các đôi một phân biệt.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 3 1 2 |
2 | Thuật toán đổi chỗ và , thêm cạnh ; dãy thành . Sau đó đổi chỗ và , thêm cạnh ; dãy đã sắp xếp. Đồ thị có đỉnh, cạnh, tập độc lập lớn nhất là . |
| 5 4 2 1 3 5 |
3 | Các cạnh sinh ra nối mọi cặp bị nghịch thế trong dãy ban đầu: . Tập độc lập lớn nhất có kích thước , ví dụ . |
| 10 1 9 8 10 2 3 4 6 5 7 |
6 | Một tập độc lập lớn nhất là . |
Bình luận