Màn chơi và các vùng
Đề bài
Mô tả
Một trò chơi điện tử có màn chơi, đánh số từ đến . Các màn được chia thành vùng. Mỗi vùng là một nhóm gồm một số màn liên tiếp (khác rỗng), và mỗi màn thuộc đúng một vùng.
Trò chơi lặp lại quá trình sau:
- Nếu tất cả các vùng đã hoàn thành thì trò chơi kết thúc. Ngược lại, hệ thống tìm vùng đầu tiên còn ít nhất một màn chưa hoàn thành. Gọi vùng đó là .
- Hệ thống tạo một túi thẻ (ban đầu rỗng). Mỗi thẻ đại diện cho một màn (có thể có nhiều thẻ cùng đại diện một màn):
- Với mỗi màn đã hoàn thành trong vùng , hệ thống bỏ vào túi thẻ đại diện cho màn .
- Gọi là màn chưa hoàn thành đầu tiên trong vùng . Hệ thống bỏ vào túi thẻ đại diện cho màn .
- Hệ thống rút ngẫu nhiên đều một thẻ trong túi, người chơi bắt đầu màn ứng với thẻ đó. Người chơi tốn đúng một giờ và hoàn thành màn đó (kể cả khi màn này đã từng được hoàn thành trước đây).
Cho , và các giá trị , hãy chia các màn thành các vùng sao cho kỳ vọng số giờ cần để kết thúc trò chơi là nhỏ nhất. In ra giá trị kỳ vọng nhỏ nhất đó.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số màn chơi và số vùng.
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
- In ra một số thực: kỳ vọng số giờ nhỏ nhất khi các màn được chia vùng tối ưu.
Đáp án được coi là đúng nếu sai số tuyệt đối hoặc tương đối so với đáp án chuẩn không vượt quá .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 2 100 3 5 7 |
5.7428571429 | Chia màn thành vùng. Tối ưu: vùng thứ nhất chỉ chứa màn (bắt buộc là màn đầu tiên), vùng thứ hai chứa ba màn còn lại. |
| 6 2 1 2 4 8 16 32 |
8.5000000000 | Tối ưu: chia thành hai vùng, mỗi vùng màn liên tiếp. |
Bình luận