Giới thiệu
Trong thử thách này, bạn được cung cấp một biểu đồ có hướng với các vòng tự, và nhiệm vụ của bạn là chuyển đổi nó thành một đồ thị không có hướng mà không có các vòng lặp.
Đầu vào
Đầu vào của bạn là một biểu đồ có hướng với đỉnh được đặt {0, 1, ..., n-1}
cho một số số tự nhiên n ≥ 0
(hoặc {1, 2, ..., n}
nếu bạn sử dụng lập chỉ mục dựa trên 1). Biểu đồ được đưa ra dưới dạng n
danh sách độ dài L
trong đó L[i]
là danh sách các vùng lân cận của đỉnh i
. Ví dụ, danh sách [[0,1],[0],[1,0,3],[]]
đại diện cho biểu đồ
.-.
| v
'-0<--2-->3
^ |
| |
v |
1<--'
Lưu ý rằng danh sách hàng xóm không nhất thiết phải được đặt hàng, nhưng chúng được đảm bảo không trùng lặp.
Đầu ra
Đầu ra của bạn là một biểu đồ khác có cùng định dạng với đầu vào, thu được từ nó như sau.
- Xóa tất cả các vòng lặp tự.
- Đối với mỗi cạnh còn lại
u -> v
, thêm cạnh đảo ngượcv -> u
nếu nó chưa xuất hiện.
Như với đầu vào, các danh sách lân cận của biểu đồ đầu ra có thể không được sắp xếp, nhưng chúng không thể chứa các bản sao. Đối với biểu đồ trên, một đầu ra chính xác sẽ là [[1,2],[0,2],[0,1,3],[2]]
, đại diện cho biểu đồ
0<->2<->3
^ ^
| |
v |
1<--'
Quy tắc
Bạn có thể sử dụng lập chỉ mục dựa trên 0 hoặc 1 dựa trên biểu đồ. Cả hai chức năng và chương trình đầy đủ đều được chấp nhận. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Các trường hợp thử nghiệm
Những trường hợp thử nghiệm sử dụng lập chỉ mục dựa trên 0; tăng mỗi số trong trường hợp 1 dựa. Các danh sách hàng xóm này được sắp xếp theo thứ tự tăng dần, nhưng không bắt buộc.
[] -> []
[[0]] -> [[]]
[[],[0,1]] -> [[1],[0]]
[[0,1],[]] -> [[1],[0]]
[[0,1],[0],[1,0,3],[]] -> [[1,2],[0,2],[0,1,3],[2]]
[[3],[],[5],[3],[1,3],[4]] -> [[3],[4],[5],[0,4],[1,3,5],[2,4]]
[[0,1],[6],[],[3],[3],[1],[4,2]] -> [[1],[0,5,6],[6],[4],[3,6],[1],[1,2,4]]
[[6],[0,5,1],[5,4],[3,5],[4],[5,6],[0,3]] -> [[1,6],[0,5],[4,5],[5,6],[2],[1,2,3,6],[0,3,5]]
[[1,0],[5,1],[5],[1],[5,7],[7,1],[],[1]] -> [[1],[0,3,5,7],[5],[1],[5,7],[1,2,4,7],[],[1,4,5]]
[[2,8,0,9],[5,2,3,4],[0,2],[3,7,4],[8,1,2],[5,1,9,2],[6,9],[6,5,2,9,0],[9,1,2,0],[3,9]] -> [[2,7,8,9],[2,3,4,5,8],[0,1,4,5,7,8],[1,4,7,9],[1,2,3,8],[1,2,7,9],[7,9],[0,2,3,5,6,9],[0,1,2,4,9],[0,3,5,6,7,8]]
.e
vừa được chuyển từk,Y
sangk,b
, vì vậy để chạy cái này, hãy sử dụng.e-.|f}k@QTUQbkQ