Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [MySQL] Đường truyền tín hiệu giữa các trạm

    Mạng truyền dẫn viễn thông gồm các trạm nối với nhau theo chiều một chiều (cáp quang). Từ trạm gốc 'G', hãy liệt kê mọi trạm có thể đến được và số chặng (số cáp) ngắn nhất tính từ G theo cách lan truyền theo tầng (BFS bằng đệ quy).

    Bảng canh:

    Cột Kiểu Ý nghĩa
    tu VARCHAR(5) Trạm đầu
    den VARCHAR(5) Trạm cuối

    Yêu cầu: in tram và so_chang (số cáp ít nhất từ G tới trạm đó). Bản thân G có so_chang = 0. Giả thiết đồ thị không có chu trình.

    Ví dụ: G->A, A->B thì A có so_chang 1, B có so_chang 2.

    • Định dạng đầu vào:

      SETUP SQL tạo bảng canh và chèn dữ liệu.

    • Ràng buộc đầu vào:

      Đồ thị có hướng, không chu trình. Không dùng NOW/CURDATE.

    • Định dạng đầu ra:

      Mỗi dòng: tram, so_chang. Sắp xếp theo so_chang tăng dần, tram tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE canh (tu VARCHAR(5), den VARCHAR(5));
    INSERT INTO canh VALUES ('G','A'),('A','B'),('G','C'),('C','B');

    Đầu ra:

    G	0
    A	1
    C	1
    B	2

    Giải thích:

    Từ G tới A 1 chặng, tới C 1 chặng; tới B qua A hoặc C đều 2 chặng nên so_chang=2. G có so_chang 0.

    Đang tải editor...