Tối ưu hoá năng lượng
View as PDFTrong một dự án nghiên cứu tại Trung tâm Công nghệ OLP, bạn Luna được giao nhiệm vụ tối ưu hóa năng lượng trong một hệ thống gồm ~n~ thiết bị điện tử. Mỗi thiết bị có một mức năng lượng ban đầu đặc thù, được biểu diễn bằng một số nguyên không âm. Các thiết bị này khá đặc biệt và khi điều chỉnh mức năng lượng, ta sẽ sử dụng thiết bị này để cập nhật cho thiết bị kia, trong đó giá trị tạo được lại liên quan đến các phép toán trên bit. Cụ thể, bạn Luna có thể thực hiện các thao tác sau đây với số lần tuỳ ý:
- Chọn hai thiết bị khác nhau, ký hiệu là ~i~ và ~j~.
- Cập nhật mức năng lượng của thiết bị i lại: ~a_i \to a_i \text{ AND } a_j~ (phép AND bitwise).
- Cập nhật mức năng lượng của thiết bị j lại: ~a_j \to a_i \text{ OR } a_j~ (phép OR bitwise).
Sau khi thực hiện các thao tác, bạn cần chọn ra ~k~ thiết bị và tính tổng bình phương mức năng lượng của chúng mà mục tiêu là tối đa hóa giá trị này.
Input.
Dòng đầu tiên chứa hai số nguyên ~n~ và ~k~ trong đó ~1 \le k \le n \le 10^5~, là số lượng thiết bị cho trước và số thiết bị cần chọn. Dòng thứ hai chứa ~n~ số nguyên không âm ~a_1,a_2,...,a_n~ trong đó ~0 \le a_i \le 2^{30},~ là mức năng lượng ban đầu của các thiết bị.
Output.
In ra một số nguyên duy nhất — tổng bình phương mức năng lượng lớn nhất có thể đạt được sau các thao tác. Do kết quả có thể rất lớn, hãy in ra tổng bình phương mức năng lượng lớn nhất có thể đạt được, lấy modulo ~10^9+7.~
Sample input 1
3 2
3 8 2
Sample output 1
125
Sample input 2
3 3
1 3 5
Sample output 2
51
Giải thích Trong VD 1, ta chọn 3, 8 để thực hiện thao tác thì thu được 11 và 0. Chú ý 0 thao tác với 2 thì vẫn thu được 0 và 2. Kết quả là ~11^2+2^2=125~. Còn trong VD2, ta lấy 3 thao tác với 5 thì được 7 và 1; chú ý 1 và 1 thao tác với nhau thì vẫn là 1, 1 nên kết quả cần tính sẽ là ~7^2+1^2+1^2=51.~
Comments