| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2009 - Sequence | 100 (p) | 5.0s | 256M |
| 2 | JOI 2009 - Stamps | 100 (p) | 5.0s | 256M |
| 3 | JOI 2009 - Pyramid | 100 (p) | 5.0s | 256M |
Cho dãy số \(A_1,A_2,\ldots\), trong đó \(m\) số hạng đầu tiên được cho trước. Với mọi \(i\ge m+1\), các số hạng tiếp theo được xác định bởi
Đếm số số hạng lẻ trong đoạn \(A_p,A_{p+1},\ldots,A_q\).
Đọc từ đầu vào chuẩn:
Ghi ra đầu ra chuẩn một số nguyên là số số hạng lẻ trong đoạn được chỉ định, tính cả hai đầu mút.
Tổng điểm là \(100\), gồm \(25\) nhóm, mỗi nhóm \(4\) điểm. Nhóm thứ nhất gồm hai test 01 và 26; các nhóm còn lại lần lượt gồm một test 02, 03, \(\ldots\), 25. Phải vượt qua mọi test trong một nhóm để nhận điểm của nhóm đó.
Mức điểm theo ràng buộc được công bố là \(30\) điểm cho các test có \(q\le10^6\).
Ví dụ 1
4
2
8
1
2
3
4
3
Ví dụ 2
3
1
100
0
0
0
0
Nhân dịp kỷ niệm \(101\) năm thành lập, hãng sản xuất con dấu IOI mở dịch vụ làm con dấu chứa những thông điệp dài theo yêu cầu. Hãng đã phát triển loại con dấu cho phép chèn, xóa hoặc thay thế từng ký tự bằng thao tác thủ công.
Thông điệp chỉ gồm hai chữ cái I và O. Trước hết, hãng dùng máy để tạo một con dấu có độ dài ít nhất \(1\). Do đặc tính của máy, chuỗi ký tự tạo ra phải bắt đầu và kết thúc bằng I, đồng thời hai ký tự liên tiếp bất kỳ phải khác nhau. Chẳng hạn, máy có thể tạo I, IOI hoặc IOIOIOI.
Việc tạo con dấu bằng máy không tốn thời gian. Sau đó, có thể thực hiện các thao tác sau, mỗi thao tác tốn \(1\) giây:
Ví dụ, từ IOIOIOI, thay ký tự thứ \(3\) bằng O, rồi chèn một chữ O vào giữa ký tự thứ \(5\) và thứ \(6\) của chuỗi vừa thu được, sẽ tạo thành IOOOIOOI trong \(2\) giây.
Cho thông điệp cần tạo, hãy tìm tổng thời gian chỉnh sửa nhỏ nhất. Trong các cách đạt thời gian nhỏ nhất đó, hãy tìm độ dài nhỏ nhất của con dấu ban đầu được tạo bằng máy.
Đọc từ đầu vào chuẩn:
I hoặc O, là thông điệp cần tạo.Ghi ra đầu ra chuẩn:
I và O.Tổng điểm là \(100\), gồm \(25\) nhóm, mỗi nhóm \(4\) điểm và chứa đúng một test, lần lượt từ 01 đến 25.
Các test thỏa mãn \(N\le5000\) chiếm \(40\) điểm.
Ví dụ 1
8
IOOOIOOI
2
7
Ví dụ 2
5
IOIOI
0
5
Ví dụ 3
5
IIIII
2
5
Ở vương quốc JOI cổ đại, mỗi khi một vị vua qua đời, người ta xây một kim tự tháp trên sa mạc làm lăng mộ. Vị trí tâm và chiều cao của kim tự tháp được quyết định bằng bói toán.
Sa mạc là hình chữ nhật có chiều rộng theo hướng đông–tây là \(W\) và chiều dài theo hướng bắc–nam là \(H\), được chia thành các ô vuông \(1\times1\). Mỗi ô được biểu diễn bằng cặp số nguyên \((x,y)\) với \(0\le x<W\), \(0\le y<H\). Ô \((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ột kim tự tháp có tâm tại ô \((X,Y)\) và chiều cao \(h\) yêu cầu số viên đá tại ô \((x,y)\) trong sa mạc là
Không đặt đá ở bên ngoài sa mạc. Chẳng hạn, với \(W=7\), \(H=6\), khi xây kim tự tháp có tâm \((2,1)\) và chiều cao \(3\), số viên đá ở mỗi ô như sau:
Do diện tích vương quốc có hạn, các kim tự tháp có thể chồng lên nhau. Khi xây một kim tự tháp mới yêu cầu \(n\) viên đá tại một ô:
Ví dụ, từ trạng thái trên, nếu xây thêm kim tự tháp có tâm \((4,3)\) và chiều cao \(4\), số viên đá ở mỗi ô trở thành:
Cho vị trí tâm và chiều cao của tất cả các kim tự tháp, hãy tính tổng số viên đá cần dùng để xây chúng, với sa mạc ban đầu chưa có đá.
Đọc từ đầu vào chuẩn:
Ghi ra đầu ra chuẩn một số nguyên là tổng số viên đá cần dùng để xây tất cả các kim tự tháp.
Tổng điểm là \(100\), gồm \(20\) nhóm, mỗi nhóm \(5\) điểm và chứa đúng một test, lần lượt từ 01 đến 20.
Ví dụ 1
7 6 2
2 1 3
4 3 4
81
Ví dụ 2
3000 3000 1
1500 1500 3000
17999999500