MMatchOriel
Quy trình

Quy trình lập trình · Ghép cặp hai phía cực đại về số lượng

03
Sản phẩm

Quy trình

Tìm ghép cặp có số lượng lớn nhất giữa hai nhóm tối đa 32 đỉnh từ các tập cạnh được phép. Thử đỉnh cô lập và đổi ghép qua đường tăng, từ chối chỉ số sai mà không sửa tập cạnh.

01

Tải ứng dụng

Chọn thư mục và yêu cầu trợ lý đọc các tệp liên quan trước khi chỉnh sửa. Xác định mục tiêu và giới hạn của tác vụ.

02

Mở thư mục dự án

Chọn endpoint tương thích. Công cụ khả dụng và chất lượng phản hồi phụ thuộc vào mô hình và máy chủ đã cấu hình.

03

Kết nối và kiểm tra mô hình

Xem lại thay đổi và đầu ra lệnh. Chạy kiểm tra dự án trước khi chấp nhận kết quả; mã được tạo không mặc nhiên đã qua kiểm thử.

04

Xem thay đổi và chạy kiểm thử

So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.

Ghép cặp hai phía cực đại về số lượng

Quy trình
def maximum_matching(edges, right_count):
    if type(right_count) is not int or not 0 <= right_count <= 32 or type(edges) not in (list, tuple) or len(edges) > 32:
        raise ValueError("matching.size")
    if any(type(row) not in (set, frozenset) or any(type(v) is not int or not 0 <= v < right_count for v in row) for row in edges):
        raise ValueError("matching.edge")
    owners = [-1] * right_count
    def augment(left, seen):
        for right in sorted(edges[left]):
            if right in seen:
                continue
            seen.add(right)
            if owners[right] == -1 or augment(owners[right], seen):
                owners[right] = left
                return True
        return False
    for left in range(len(edges)):
        augment(left, set())
    return sorted((left, right) for right, left in enumerate(owners) if left != -1)

Kiểm tra trước khi áp dụng. Xem lại thay đổi và đầu ra lệnh. Chạy kiểm tra dự án trước khi chấp nhận kết quả; mã được tạo không mặc nhiên đã qua kiểm thử.

Không gian lập trình với AI

Ý tưởng tiếp theo bắt đầu từ đây.

Tải cho Windows ↗