Bẻ thanh sô cô la
Đề bài
Mô tả
Bạn có một thanh sô cô la hình chữ nhật gồm ô vuông đơn vị. Bạn muốn ăn đúng ô vuông, nên có thể phải bẻ thanh sô cô la ra thành nhiều mảnh.
Trong một lần bẻ, bạn chọn một mảnh sô cô la hình chữ nhật bất kỳ và bẻ nó thành hai mảnh hình chữ nhật. Chỉ được bẻ dọc theo các đường thẳng giữa các ô, theo chiều ngang hoặc chiều dọc. Chi phí của một lần bẻ bằng bình phương độ dài đường bẻ.
Ví dụ, với một mảnh : nếu bẻ ngang thì được hai mảnh (chi phí ); nếu bẻ dọc thì được hai mảnh, chẳng hạn và (chi phí ).
Hãy tìm tổng chi phí nhỏ nhất để sau tất cả các lần bẻ, tồn tại một tập các mảnh hình chữ nhật có tổng diện tích đúng bằng ô vuông. ô này là các ô bạn sẽ ăn, chúng không nhất thiết tạo thành một mảnh hình chữ nhật duy nhất. Phần ô còn lại cũng không cần tạo thành một hình chữ nhật.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ truy vấn.
- Mỗi dòng trong dòng tiếp theo chứa ba số nguyên , , .
Dữ liệu ra
Với mỗi bộ , , , in ra trên một dòng chi phí nhỏ nhất cần thiết để có thể ăn đúng ô sô cô la.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 2 2 1 2 2 3 2 2 2 2 2 4 |
5 5 4 0 |
Truy vấn 1 (): bẻ thành hai mảnh (chi phí ), rồi bẻ một mảnh thành hai ô (chi phí ), tổng . Truy vấn 3 (): chỉ cần bẻ thành hai mảnh , chi phí . Truy vấn 4 (): ăn cả thanh, không cần bẻ, chi phí . |
| 3 30 30 50 1 30 15 7 7 25 |
904 1 65 |
Với dải cần lấy ô: chỉ cần bẻ một nhát tại cột thứ , độ dài đường bẻ là nên chi phí là . Với thanh cần lấy ô, chi phí tối thiểu là . |
Bình luận