Google Code Jam 2021 - Matrygons
Xem PDFMatryoshka là một loại búp bê xuất xứ từ Nga hơn một thế kỷ trước. Đặc trưng của chúng là một bộ búp bê có kích thước khác nhau, trong đó búp bê nhỏ nằm vừa vặn bên trong búp bê lớn.
Trong bài này, ta làm việc với matrygon: các bộ đa giác lồi đều có kiểu lồng nhau tương tự. Một matrygon gồm các đa giác lồi đều có diện tích dương \(p_1,p_2,\ldots,p_k\) sao cho với mọi \(i\), các đỉnh của \(p_{i+1}\) trùng với một tập con thực sự các đỉnh của \(p_i\); tức \(p_{i+1}\) có ít đỉnh hơn hẳn \(p_i\).
Hai hình sau minh họa hai matrygon. Hình thứ nhất có ba đa giác lồi đều: một đa giác \(24\) cạnh, một lục giác đều \(6\) cạnh và một tam giác đều \(3\) cạnh. Hình thứ hai có hai đa giác: một đa giác đều \(22\) cạnh và một đa giác đều \(11\) cạnh. Tổng số cạnh của các đa giác trong mỗi matrygon đều bằng \(33\).
Cho tổng số cạnh cố định \(N\), hãy tính số đa giác lớn nhất có thể thuộc một matrygon sao cho tổng số cạnh của mọi đa giác đúng bằng \(N\).
Dữ liệu vào
Dòng đầu chứa số bộ dữ liệu \(T\). Mỗi dòng tiếp theo chứa một số nguyên \(N\), là tổng số cạnh mục tiêu của một bộ dữ liệu.
Dữ liệu ra
Với mỗi bộ dữ liệu, in Case #x: y, trong đó \(x\) là số thứ tự bộ dữ liệu (bắt đầu từ \(1\)), còn \(y\) là số đa giác lớn nhất trong một matrygon có tổng số cạnh đúng bằng \(N\).
Ràng buộc
- \(1\le T\le100\).
Phân nhóm
- Test Set 1 (Visible Verdict): \(3\le N\le1000\).
- Test Set 2 (Visible Verdict): \(3\le N\le10^6\).
Điểm các phân nhóm
Mỗi Test Set tương ứng với một subtask trên LQDOJ. Bảng dưới đây giữ nguyên điểm chính thức của Google Code Jam và quy đổi tỷ lệ trên tổng điểm của bài.
| Phân nhóm | Điểm Google Code Jam | Tỷ lệ điểm của bài |
|---|---|---|
| Test Set 1 | 7/20 | 35% |
| Test Set 2 | 13/20 | 65% |
Ví dụ
Ví dụ 1
Input
3
33
15
41
Output
Case #1: 3
Case #2: 2
Case #3: 1
Giải thích
- Matrygon đầu tiên trong hình là một đáp án tối ưu cho mẫu #1.
- Ở mẫu #2, có thể đạt hai đa giác bằng cách lồng ngũ giác đều (\(5\) cạnh) trong thập giác đều (\(10\) cạnh).
- Ở mẫu #3, không thể tạo matrygon có nhiều đa giác đều, nên lựa chọn duy nhất là một đa giác đều \(41\) cạnh.
Nguồn
Google Code Jam 2021, Vòng 2, bài Matrygons.
Nguồn chính thức trên Google Coding Competitions Archive, phát hành theo giấy phép Apache-2.0.
Kỳ thi:
- Google Code Jam 2021 - Round 2 (15 Tháng năm, 2021)


Bình luận