Bắc cầu
Đề bài
Mô tả
Chính phủ quốc đảo Oceani quyết định xây dựng chiếc cầu nối đảo của mình, tạo một mạng lưới giao thông đường bộ cho phép đi từ đảo bất kỳ tới đảo khác bằng đường bộ (trực tiếp hoặc qua một số đảo trung gian). Mỗi cây cầu sẽ nối đảo khác nhau và cho phép đi lại hai chiều. Các đảo được đánh số từ đến . Bị hạn chế bởi kinh phí và nguồn nhân lực, người ta quyết định sẽ xây dựng lần lượt từng chiếc cầu một và lên kế hoạch xác định cầu và trình tự xây. Mỗi cây cầu được xác định bởi cặp đảo mà nó nối. Trong quá trình thực hiện kế hoạch có thể đến một lúc nào đó từ một đảo đã có thể đi đến bất kỳ đảo khác bằng đường bộ.
Ví dụ, ở Oceani có đảo và người ta quyết định xây dựng cầu theo trình tự lần lượt là , , , , . Tuy vậy, không cần chờ đợi đến khi hoàn thành kế hoạch xây cầu, sau khi cầu thứ được xây xong tất cả các đảo đã được nối liền bằng đường bộ.
Yêu cầu: Cho và các cây cầu dự kiến xây. Thông tin về các cây cầu đưa ra theo đúng trình tự xây dựng. Hãy xác định số cầu tối thiểu cần xây theo kế hoạch để từ một đảo đã có thể đi đến bất kỳ đảo khác bằng đường bộ.
Dữ liệu đảm bảo sau khi xây xong cả cầu theo kế hoạch thì mọi đảo đã được nối liền. Có thể có nhiều cầu nối cùng một cặp đảo.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên và .
- Dòng thứ trong dòng tiếp theo chứa số nguyên và xác định cây cầu thứ cần xây.
Dữ liệu ra
In ra kết quả tìm được dưới dạng một số nguyên.
Ràng buộc
- (mỗi cầu nối đảo khác nhau nên có ít nhất đảo).
- .
- , .
- Sau khi xây cả cầu, mọi đảo đã được nối liền.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 5 0 1 0 2 1 2 2 3 3 0 |
4 | Sau cầu thứ () cả đảo đã nối liền. |
| 2 1 1 0 |
1 | Ví dụ thêm. Chỉ có đảo, cần đúng cầu. |
| 4 5 0 1 1 0 2 3 3 2 1 2 |
5 | Ví dụ thêm. Cầu thứ và thứ nối lại cặp đảo đã có cầu nên không giúp gì. Sau cầu thứ mọi đảo đều đã có cầu nhưng hai nhóm và vẫn tách rời, phải đến cầu thứ mới nối liền. |
Bình luận