Sửa cây
Đề bài
Mô tả
Một cây có gốc gồm đỉnh (đánh số từ đến ) có thể được mô tả bằng một mảng , trong đó là cha của đỉnh . Riêng đỉnh gốc được quy ước là cha của chính nó, tức .
Một mảng được gọi là hợp lệ nếu nó mô tả đúng một cây có gốc, nghĩa là:
- Tồn tại đúng một chỉ số thỏa (đỉnh này là gốc).
- Với mọi đỉnh , xét cạnh nối với ; tập các cạnh này cùng với các đỉnh tạo thành một cây (liên thông, không có chu trình).
Cho một mảng (không nhất thiết hợp lệ). Hãy thay đổi ít nhất một số phần tử của mảng để thu được một mảng hợp lệ.
In ra số phần tử cần thay đổi ít nhất, và một mảng hợp lệ bất kỳ đạt được số thay đổi đó.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số đỉnh.
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
- Dòng đầu in ra số phần tử ít nhất cần thay đổi.
- Dòng thứ hai in ra một mảng hợp lệ bất kỳ thu được sau đúng số thay đổi đó. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 2 3 3 4 |
1 2 3 3 3 |
Mảng ban đầu có hai đỉnh tự trỏ vào mình (, ) nên có hai "gốc". Đổi từ thành để chỉ còn một gốc là đỉnh ; cây thu được hợp lệ với đúng 1 thay đổi. |
| 5 3 2 2 5 3 |
0 3 2 2 5 3 |
Mảng ban đầu đã hợp lệ (gốc là đỉnh ), không cần thay đổi gì. |
| 8 2 3 5 4 1 6 6 7 |
2 2 3 5 4 4 4 6 7 |
Có một chu trình và hai đỉnh tự trỏ (, ). Cần 2 thay đổi: phá chu trình và loại bớt một gốc bằng cách trỏ về gốc . |
Bình luận