Lần cuối cùng tôi tìm thấy vấn đề thú vị và tôi bị kẹt trên đó.
Tìm số tiền tối thiểu thứ k của mỗi tập hợp con có thể
Cho số n a [1], ..., a [n] theo thứ tự tăng dần và số k (1 < = n, k < = 10^5).
Giả sử chúng tôi sắp xếp mọi tập hợp con có thể của chuỗi đã cho theo tổng.
Chúng ta phải tìm tổng của tập hợp con thứ k.
Ví dụ:
n = 4, k = 8
a = {2, 7, 8, 15}
1: {2}, tổng = 2
2: { 7}, tổng = 7
3: {8}, tổng = 8
4: {2, 7}, tổng = 9
5: {2, 8}, tổng = 10
6: {7, 8}, tổng cộng = 15
7: {15}, sum = 15
8: {2, 15}, tổng = 17
...
k = 8, vì vậy hãy trả lời = 17 (tập con {2,15}).
Tất nhiên chúng ta có thể tạo ra mọi tập con có thể và toàn bộ giải pháp chạy trong O (2^n * n), nhưng tôi đang tìm kiếm thứ gì đó thông minh hơn, hoặc ít nhất là O (nk).
Số không âm? –
Yep, 1 <= a [i] <= 10^9. –
Làm thế nào để bạn phân biệt thứ tự cho các tập hợp có cùng số tiền? –