Bài toán lập trình chia tập hợp
Mình ko nghĩ ra được cách làm bài này ạ. Nếu xét theo kiểu chọn hết các trường hợp có thể sắp xếp thành 2 nhóm thì lại nhiều trường hợp quá mà nếu mình cố tìm cách lược bớt thì lại bị xót trường hợp. Mong mọi người chỉ giáo ạ. Mình cảm ơn nhiều ạ!
Số dương thì dùng nhánh cận thôi nhưng n lớn hơn 50 thì chỉ có sort lại rồi greedy.
2 Likes
sort với greedy là j vậy bạn. Mk hơi kém khoản này
Greedy bài này tức là duy trì |hiệu số| nhỏ nhất giữa dãy chọn và dãy không chọn, bằng cách tạo các cặp số.
3 Likes
bài này cần chia cả tập số đó thành 2 rồi tính hiệu của 2 tập số mới được lập ra nhưng mk đang ko biết cách để chia tập số đó thành 2 ấy
Bạn tham khảo link bài viết này xem nhé
3 Likes
Cái này là giải bài cơ bản thêm điều kiện số phần tử thì ko đc.
Sau khi sort thì lấy hai phần tử chỉ số chẵn lẻ là 1 cặp, mỗi cặp chọn đúng 1 phần tử theo cách greedy là giữ chênh lệch thấp hơn.
2 Likes