Bộ nhớ đệm LRU
Đề bài
Mô tả
Một máy chủ lưu trữ đoạn video, tất cả có cùng kích thước. Máy chủ dùng một bộ nhớ đệm (cache) áp dụng thuật toán LRU (Least Recently Used): cache chứa tối đa video và ban đầu rỗng.
Mỗi khi một video được truy vấn:
- Nếu video đã có trong cache thì giữ nguyên (chỉ cập nhật thời điểm truy vấn gần nhất của nó).
- Nếu chưa có, video được đưa vào cache. Nếu sau đó cache chứa nhiều hơn video, video ít được dùng gần đây nhất (video có thời điểm truy vấn gần nhất là sớm nhất) sẽ bị loại bỏ.
Mỗi lần một người dùng truy cập máy chủ, họ chọn video với xác suất , độc lập với mọi lần truy cập trước đó.
Cần tính, với mỗi video, xác suất nó nằm trong cache sau lần truy vấn.
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và — số lượng video và dung lượng cache.
- Dòng thứ hai chứa số thực — xác suất chọn video thứ , mỗi số có không quá hai chữ số sau dấu phẩy.
Đảm bảo tổng tất cả bằng .
Dữ liệu ra
In ra số thực, số thứ là xác suất video thứ nằm trong cache sau lần truy vấn.
Đáp án được chấp nhận nếu sai số tuyệt đối hoặc tương đối so với đáp án đúng không vượt quá .
Ràng buộc
- , tổng
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 0.3 0.2 0.5 |
0.6750000000 0.4857142857 0.8392857143 | Cache chứa được 2 video. Sau rất nhiều truy vấn, cache gần như luôn giữ 2 video được truy cập gần đây nhất. |
| 3 1 0.3 0.2 0.5 |
0.3000000000 0.2000000000 0.5000000000 | Với , cache chỉ giữ video vừa được truy cập, nên xác suất mỗi video nằm trong cache đúng bằng . |
| 3 3 0.2 0.3 0.5 |
1.0000000000 1.0000000000 1.0000000000 | Cache đủ chỗ cho cả 3 video nên cuối cùng chúng đều nằm trong cache. |
Bình luận