| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2010 - JOI Poster | 100 (p) | 1.0s | 64M |
| 2 | JOI 2010 - Sengoku | 100 (p) | 0.75s | 64M |
| 3 | JOI 2010 - Stairs | 100 (p) | 1.5s | 64M |
Ủy ban Olympic Tin học Nhật Bản quyết định làm áp phích để quảng bá trại huấn luyện Olympic Tin học Nhật Bản (JOI) năm nay. Áp phích được thiết kế dựa trên logo của JOI.
Trên áp phích, các chữ cái được in thành một hình vuông gồm \(2^N\) hàng và \(2^N\) cột. Cách in được quy định như sau:
J vào toàn bộ hình vuông phía trên bên trái, chữ O vào toàn bộ hình vuông phía trên bên phải và chữ I vào toàn bộ hình vuông phía dưới bên trái. Trong hình vuông phía dưới bên phải, in một áp phích kích thước \(2^{N-1} \times 2^{N-1}\) theo cùng quy tắc.J.Dưới đây là các chữ cái trên áp phích kích thước \(8 \times 8\) khi \(N = 3\):
JJJJOOOO
JJJJOOOO
JJJJOOOO
JJJJOOOO
IIIIJJOO
IIIIJJOO
IIIIIIJO
IIIIIIIJ
Người ta phát hiện hàng thứ \(K\) của áp phích đã in bị sai. Trại huấn luyện JOI năm nay đã bắt đầu, nên không còn đủ thời gian để nhờ nhà in in lại áp phích. Vì vậy, họ quyết định khắc phục bằng cách dán hàng thứ \(K\) được in đúng lên áp phích.
Cho hai số nguyên \(N\) và \(K\), hãy viết chương trình in ra hàng thứ \(K\) của áp phích kích thước \(2^N \times 2^N\).
Đọc từ đầu vào chuẩn một dòng chứa hai số nguyên \(N\) và \(K\), cách nhau bởi dấu cách. \(N\) xác định kích thước áp phích, còn \(K\) là số thứ tự của hàng cần in ra.
In ra đầu ra chuẩn một dòng chứa hàng thứ \(K\) của áp phích kích thước \(2^N \times 2^N\).
Giới hạn trong kỳ thi gốc: thời gian \(1\) giây, bộ nhớ \(64\) MB.
\(0 \le N \le 20\).
Bài này có tổng cộng \(100\) điểm, gồm \(20\) bộ dữ liệu, mỗi bộ \(5\) điểm.
Ví dụ 1
1 1
JO
Ví dụ 2
2 4
IIIJ
Ví dụ 3
3 7
IIIIIIJO
Đang giữa thời Chiến Quốc. Để chuẩn bị cho trận chiến sắp tới, vị tướng JOI, người lãnh đạo nước JOI, quyết định bố trí lính canh trên lãnh thổ của mình.
Lãnh thổ nước JOI có dạng hình vuông, với chiều đông–tây và chiều bắc–nam đều bằng \(L\). Lãnh thổ được chia thành các ô vuông kích thước \(1 \times 1\). Mỗi ô được biểu diễn bằng cặp số nguyên \((x, y)\) thỏa mãn \(0 \le x < L\) và \(0 \le y < L\). Ô \((0, 0)\) nằm ở góc tây bắc; ô \((x, y)\) nằm cách ô \((0, 0)\) một khoảng \(x\) về phía đông và \(y\) về phía nam.
Mỗi lính canh đứng cố định tại một ô trong lãnh thổ. Lính canh ở ô \((x, y)\) canh gác tất cả các ô \((i, j)\) trong lãnh thổ thỏa mãn:
Phạm vi này không thay đổi theo vị trí của các lính canh khác. Không có hai lính canh nào đứng cùng một ô.
Cho vị trí của \(N\) lính canh do tướng JOI bố trí, hãy viết chương trình tính số ô trong lãnh thổ được ít nhất một lính canh canh gác.
Đọc dữ liệu từ đầu vào chuẩn theo định dạng sau:
In ra đầu ra chuẩn một dòng chứa một số nguyên: số ô được ít nhất một lính canh canh gác.
Lưu ý: Kết quả có thể vượt quá phạm vi biểu diễn của kiểu số nguyên 32 bit. Cần sử dụng kiểu số nguyên 64 bit, chẳng hạn long long trong C/C++.
Giới hạn trong kỳ thi gốc: thời gian \(0{,}75\) giây, bộ nhớ \(64\) MB.
\(1 \le L \le 100\,000\,000\): độ dài một cạnh của lãnh thổ.
Bài này có tổng cộng \(100\) điểm, gồm \(16\) bộ dữ liệu, mỗi bộ \(5\) điểm, và \(2\) bộ dữ liệu, mỗi bộ \(10\) điểm.
Bạn muốn tìm hiểu có bao nhiêu cách đi lên một cầu thang. Cầu thang gồm \(N\) bậc; độ chênh cao của bậc thứ \(k\) là \(h_k\) mm, với \(1 \le k \le N\).
Trong một lần bước, bạn có thể đi lên một hoặc nhiều bậc có tổng độ chênh cao không vượt quá \(P\) mm. Khi đi lên cầu thang, bạn không giậm chân tại chỗ trên cùng một bậc và không đi xuống. Hai cách đi lên được xem là giống nhau nếu các bậc được đặt chân lên là giống nhau.
Hãy tính số cách đi lên hết cầu thang, lấy phần dư khi chia cho \(1\,234\,567\).
Đọc dữ liệu từ đầu vào chuẩn theo định dạng sau:
In ra đầu ra chuẩn một dòng chứa một số nguyên: phần dư của số cách đi lên cầu thang khi chia cho \(1\,234\,567\).
Giới hạn trong kỳ thi gốc: thời gian \(1{,}5\) giây, bộ nhớ \(64\) MB.
\(1 \le N \le 500\,000\): số bậc của cầu thang.
Tổng độ chênh cao của các bậc thỏa mãn:
Bài này có tổng cộng \(100\) điểm, gồm \(10\) bộ dữ liệu, mỗi bộ \(10\) điểm.
Ví dụ 1
6 350
315
191
98
70
126
200
9
Cầu thang này gồm \(6\) bậc và có \(9\) cách đi lên:
Chẳng hạn, ký hiệu \(1, 3, 5, 6\) biểu diễn cách đi lên bậc thứ \(6\) bằng cách đặt chân lên các bậc thứ \(1\), \(3\) và \(5\) trước đó.