Lexicographically Smallest Path
Đề bài
Mô tả
Cho đồ thị vô hướng liên thông gồm đỉnh và cạnh. Mỗi cạnh được gán một ký tự viết thường từ 'a' đến 'z'. Đồ thị có thể chứa khuyên (cạnh nối một đỉnh với chính nó) và đa cạnh.
Một hành trình từ đỉnh đến đỉnh là một dãy cạnh nối tiếp nhau đi từ tới , trong đó được phép đi lại một đỉnh hoặc một cạnh nhiều lần. Ghép các ký tự trên các cạnh theo đúng thứ tự đi qua, ta được xâu ký tự của hành trình đó (hành trình rỗng cho xâu rỗng).
Gọi là xâu nhỏ nhất theo thứ tự từ điển trong tất cả các xâu của mọi hành trình từ đến . Lưu ý rằng số hành trình là vô hạn, nên xâu nhỏ nhất có thể không tồn tại: khi đó với mọi hành trình đều tìm được hành trình khác cho xâu nhỏ hơn thật sự.
Với mỗi đỉnh (), hãy xác định độ dài của . In nếu không tồn tại.
Nhắc lại thứ tự từ điển: xâu nhỏ hơn xâu nếu là tiền tố thật sự của , hoặc tại vị trí khác nhau đầu tiên ký tự của nhỏ hơn ký tự của .
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên () - số test case.
- Với mỗi test case:
- Dòng 1: Hai số nguyên và (, ).
- dòng tiếp theo: Mỗi dòng chứa hai số nguyên và một ký tự viết thường - biểu thị cạnh nối và với nhãn .
Tổng và tổng trên tất cả test case đều không vượt quá .
Dữ liệu ra
Với mỗi test case, in số nguyên cách nhau bởi dấu cách, số thứ là độ dài hoặc nếu không tồn tại.
Ràng buộc
- Tổng , tổng
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 1 0 2 2 1 1 a 2 1 b |
0 0 -1 |
Test case 1: chỉ 1 đỉnh, f(1,1) = xâu rỗng, dài 0. Test case 2: đỉnh 1 có khuyên nhãn 'a', cạnh 1-2 nhãn 'b'. Mọi hành trình tới đỉnh 2 đều kết thúc bằng 'b', nhưng đi thêm một vòng khuyên 'a' trước đó luôn cho xâu nhỏ hơn ("ab" < "b", "aab" < "ab", ...), nên f(1,2) không tồn tại. |
| 2 7 7 1 2 a 1 3 a 2 4 b 3 5 a 5 6 a 6 7 a 7 4 a 4 3 1 2 z 2 3 x 3 4 y |
0 1 1 5 2 3 4 0 1 2 -1 |
Test case 1: f(1,4) = "aaaaa" (dài 5), đi 1->3->5->6->7->4; xâu này nhỏ hơn "ab" của hành trình ngắn hơn 1->2->4. Test case 2: f(1,3) = "zx", còn tới đỉnh 4 thì đi qua lại cạnh 2-3 nhãn 'x' nhiều lần luôn cho xâu nhỏ hơn ("zxxy" < "zxy"), nên đáp án là -1. |
Bình luận