cpp-102Đọc toàn bộ đề miễn phí

Lát cắt hẹp nhất toàn cục: Thuật toán Stoer-Wagner O(V^3)

Cho một đồ thị vô hướng liên thông gồm N đỉnh và M cạnh có trọng số dương. Hãy tìm giá trị lát cắt hẹp nhất toàn cục (Global Min-Cut).

C++Nâng cao50 phút

Tiến độ của tôi ở bài này

Điểm được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

graphsmin cutstoer wagnernetwork flow

Kiến thức tiên quyết: graphs, min cut basics.

Nội dung đề bài

Mục tiêu kiến thức

  • Hiểu bài toán Global Minimum Cut: Tìm phân hoạch tập đỉnh V thành hai tập rời nhau S và V setminus S sao cho tổng trọng số các cạnh nối giữa hai tập là nhỏ nhất.
  • Khác biệt với s-t Min-Cut: Không cố định cặp đỉnh s, t.
  • Thuật toán Stoer-Wagner tìm lát cắt s-t giữa hai đỉnh cuối cùng trong pha duyệt tương tự Prim, sau đó gộp hai đỉnh này lại và lặp lại V-1 pha, đạt O(V3) mà không cần chạy luồng cực đại V lần.

Mô tả bài toán

Cho một đồ thị vô hướng liên thông gồm N đỉnh và M cạnh có trọng số dương. Hãy tìm giá trị lát cắt hẹp nhất toàn cục (Global Min-Cut).

Quy ước nộp bài

  • Chỉ cần viết một chương trình đọc stdin và in ra stdout. Bài này không yêu cầu viết hàm.
  • Không dùng cout để in lời nhắc trước khi đọc dữ liệu. Lời nhắc sẽ lọt vào stdout và làm bài sai.
  • Chỉ in đúng nội dung ở mục Output. Không in thêm nhãn, dòng trống hay ký tự thừa.
  • Output được so khớp từng ký tự, phân biệt chữ hoa/thường và dấu câu.

Input

  • Dòng 1: Gồm 2 số nguyên N, M (2 ≤ N ≤ 300, 1 ≤ M ≤ N(N-1)2).
  • M dòng tiếp theo: Mỗi dòng gồm 3 số nguyên u, v, w (1 ≤ u, v ≤ N, u ≠ v, 1 ≤ w ≤ 106).

Output

  • In ra một số nguyên duy nhất là giá trị lát cắt hẹp nhất toàn cục.

Ràng buộc

  • 2 ≤ N ≤ 300.
  • Thời gian: 1000ms. Bộ nhớ: 256MB.

Ví dụ 1

Input

4 5
1 2 2
1 3 3
2 3 1
2 4 4
3 4 2

Output

5
*Giải thích: Cô lập đỉnh 1 có trọng số lát cắt là 2+3=5, cô lập đỉnh 4 có trọng số 4+2=6, cắt {1, 3} và {2, 4} có các cạnh (1, 2) trọng số 2, (3, 4) trọng số 2 và (2, 3) trọng số 1 $\implies$ tổng trọng số là 5. Min cut toàn cục là 5.*
3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.