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

    solution

    Đề bài: [Giải thuật] Đường đi Euler nhỏ nhất từ điển

    Cho đồ thị vô hướng gồm nnn đỉnh và mmm cạnh (cho phép đa cạnh, không khuyên). Một đường đi Euler là đường đi qua mỗi cạnh đúng một lần.

    Nếu tồn tại đường đi Euler, hãy in ra dãy đỉnh của đường đi nhỏ nhất theo thứ tự từ điển (khi đứng ở một đỉnh, ưu tiên đi sang đỉnh có chỉ số nhỏ hơn). Nếu không tồn tại, in NONE.

    Một đường đi Euler tồn tại khi đồ thị (xét các đỉnh có bậc dương) liên thông và số đỉnh bậc lẻ bằng 000 hoặc 222.

    Ví dụ: Tam giác 1 ⁣− ⁣2,2 ⁣− ⁣3,3 ⁣− ⁣11\!-\!2, 2\!-\!3, 3\!-\!11−2,2−3,3−1 cho đường đi 1 2 3 1.

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

      Dòng đầu chứa nnn và mmm. mmm dòng tiếp theo, mỗi dòng hai số u vu\ vu v là một cạnh.

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

      1≤n≤1041 \le n \le 10^41≤n≤104, 0≤m≤5⋅1040 \le m \le 5\cdot10^40≤m≤5⋅104, 1≤u,v≤n1 \le u, v \le n1≤u,v≤n, u≠vu \ne vu=v.

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

      Dãy đỉnh của đường đi Euler nhỏ nhất từ điển, cách nhau bởi dấu cách; hoặc NONE.

    Ví dụ:

    Đầu vào:

    3 3
    1 2
    2 3
    3 1
    

    Đầu ra:

    1 2 3 1

    Giải thích:

    Đồ thị là tam giác, mọi đỉnh bậc 2 (chẵn) nên có chu trình Euler. Bắt đầu từ đỉnh nhỏ nhất 1, luôn ưu tiên đỉnh kề nhỏ hơn, ta được 1 2 3 1.

    Đang tải editor...