Tóm tắt
Với đầu vào k, tìm một phân vùng của các số nguyên 1để nthành ktập con tổng hợp miễn phí cho lớn nhất nbạn có thể trong vòng 10 phút.
Bối cảnh: Số Schur
Một tập hợp Alà tổng miễn phí nếu tự tổng của A + A = { x + y | x, y in A}nó không có phần tử chung với nó.
Đối với mỗi số nguyên dương kcó một số nguyên lớn nhất S(k)sao cho tập hợp {1, 2, ..., S(k)}có thể được phân chia thành kcác tập con không có tổng. Số này được gọi là số Schur thứ k (OEIS A045652 ).
Ví dụ , S(2) = 4. Chúng ta có thể phân vùng {1, 2, 3, 4}dưới dạng {1, 4}, {2, 3}, và đó là phân vùng duy nhất thành hai tập con không có tổng, nhưng bây giờ chúng ta không thể thêm một 5vào một trong hai phần.
Thử thách
Viết chương trình xác định thực hiện như sau:
- Lấy số nguyên dương
klàm đầu vào - Viết dấu thời gian Unix hiện tại vào thiết bị xuất chuẩn
- Kết quả đầu ra một chuỗi các phân vùng của
1đểnvàoktập con tổng hợp miễn phí cho tăngn, sau mỗi chuỗi với dấu thời gian Unix hiện hành.
Người chiến thắng sẽ là chương trình in phân vùng lớn nhất ntrong vòng 10 phút trên máy tính của tôi khi được đưa vào đầu vào 5. Các mối quan hệ sẽ bị phá vỡ trong thời gian nhanh nhất để tìm một phân vùng lớn nhất n, tính trung bình trong ba lần chạy: đó là lý do tại sao đầu ra phải bao gồm dấu thời gian.
Chi tiết quan trọng:
- Tôi có Ubuntu Precise, vì vậy nếu ngôn ngữ của bạn không được hỗ trợ, tôi sẽ không thể chấm điểm.
- Tôi có CPU Intel Core2 Quad, vì vậy nếu bạn muốn sử dụng đa luồng thì không có điểm nào sử dụng nhiều hơn 4 luồng.
- Nếu bạn muốn tôi sử dụng bất kỳ cờ trình biên dịch cụ thể hoặc triển khai nào, hãy ghi lại rõ ràng trong câu trả lời của bạn.
- Bạn sẽ không đặc biệt mã của bạn để xử lý đầu vào
5. - Bạn không cần phải xuất ra mọi cải tiến bạn tìm thấy. Ví dụ, đối với đầu vào,
2bạn chỉ có thể xuất phân vùng chon = 4. Tuy nhiên, nếu bạn không xuất bất cứ thứ gì trong 10 phút đầu tiên thì tôi sẽ ghi điểm đón = 0.
n=59và sắp xếp theo số lượng lớn nhất của số được phép ít hơn sốnextNchon=64. Sắp xếp theo độ dài của danh sách số không được phép (có thể lặp lại) dẫn rất nhanh đến mộtn=30mẫu thanh lịch .